Class: Array
Instance Method Summary collapse
- #ensure_array ⇒ Object
- #find_by(key, val) ⇒ Object
- #limit(offset) ⇒ Object
- #median ⇒ Object
- #round_shift(element, step) ⇒ Object
- #sorted_by? ⇒ Boolean
- #where(key, val = nil, &block) ⇒ Object
Instance Method Details
#ensure_array ⇒ Object
38 39 40 |
# File 'lib/nin/extensions/array_extensions.rb', line 38 def ensure_array self.to_a end |
#find_by(key, val) ⇒ Object
26 27 28 |
# File 'lib/nin/extensions/array_extensions.rb', line 26 def find_by(key, val) self.where(key, val).first end |
#limit(offset) ⇒ Object
6 7 8 |
# File 'lib/nin/extensions/array_extensions.rb', line 6 def limit(offset) offset > 0 ? self.last(offset) : self.first(offset.abs) end |
#median ⇒ Object
17 18 19 20 21 22 23 24 |
# File 'lib/nin/extensions/array_extensions.rb', line 17 def median return nil if self.empty? sorted = self.sort len = self.length (sorted[(len - 1) / 2] + sorted[len / 2]) / 2 end |
#round_shift(element, step) ⇒ Object
10 11 12 13 14 15 |
# File 'lib/nin/extensions/array_extensions.rb', line 10 def round_shift(element, step) new_element = [self.min, (element - step), self.max].median actual_step = element - new_element [new_element, actual_step] end |
#sorted_by? ⇒ Boolean
2 3 4 |
# File 'lib/nin/extensions/array_extensions.rb', line 2 def sorted_by? each_cons(2).all? { |a, b| ((yield a) <=> (yield b)) <= 0 } end |
#where(key, val = nil, &block) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/nin/extensions/array_extensions.rb', line 30 def where(key, val = nil, &block) self.select do |element| key_eval = element.send(key) block_given? ? block.call(key_eval) : (key_eval == val) end end |