Method: Enumerable#every

Defined in:
lib/quality_extensions/enumerable/every.rb

#every(n) ⇒ Object

Yields every nth object (if invoked with a block), or returns an array of every nth object.

every(2), for example, would return every other element from the enumerable:

[1, 2, 3, 4, 5, 6].every(2)               -> [1, 3, 5]
[1, 2, 3, 4, 5, 6].every(2) { |i| ... }   -> nil


23
24
25
26
27
28
29
30
31
# File 'lib/quality_extensions/enumerable/every.rb', line 23

def every(n)
  result = [] unless block_given?
  each_with_index do |object, i|
    if i % n == 0
      block_given?? yield(object) : result << object
    end
  end
  return block_given?? nil : result
end