Class: Array

Inherits:
Object show all
Defined in:
lib/nin/extensions/array_extensions.rb

Instance Method Summary collapse

Instance Method Details

#ensure_arrayObject



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

#medianObject



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

Returns:

  • (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