class Array

Public Instance Methods

ensure_array() click to toggle source
# File lib/nin/extensions/array_extensions.rb, line 38
def ensure_array
  self.to_a
end
find_by(key, val) click to toggle source
# File lib/nin/extensions/array_extensions.rb, line 26
def find_by(key, val)
  self.where(key, val).first
end
limit(offset) click to toggle source
# File lib/nin/extensions/array_extensions.rb, line 6
def limit(offset)
  offset > 0 ? self.last(offset) : self.first(offset.abs)
end
median() click to toggle source
# 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) click to toggle source
# 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?() { |a) <=> (yield b)) <= 0| ... } click to toggle source
# 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) click to toggle source
# 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