diff options
author | Robert Speicher <rspeicher@gmail.com> | 2016-03-01 15:54:35 -0500 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2016-03-01 15:54:35 -0500 |
commit | c9b11322172c97320f6bbddbf6c14b235ab9d7c3 (patch) | |
tree | 80c6997cf3c3910c505f60a10f600116cac6d98f /lib/banzai/filter_array.rb | |
parent | 6aa50165b0acc355925e271f07ef8e87291e0232 (diff) | |
download | gitlab-ce-c9b11322172c97320f6bbddbf6c14b235ab9d7c3.tar.gz |
Add FilterArray class to Banzairs-filter-array
Diffstat (limited to 'lib/banzai/filter_array.rb')
-rw-r--r-- | lib/banzai/filter_array.rb | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/banzai/filter_array.rb b/lib/banzai/filter_array.rb new file mode 100644 index 00000000000..77835a14027 --- /dev/null +++ b/lib/banzai/filter_array.rb @@ -0,0 +1,27 @@ +module Banzai + class FilterArray < Array + # Insert a value immediately after another value + # + # If the preceding value does not exist, the new value is added to the end + # of the Array. + def insert_after(after_value, value) + i = index(after_value) || length - 1 + + insert(i + 1, value) + end + + # Insert a value immediately before another value + # + # If the succeeding value does not exist, the new value is added to the + # beginning of the Array. + def insert_before(before_value, value) + i = index(before_value) || -1 + + if i < 0 + unshift(value) + else + insert(i, value) + end + end + end +end |