narray icon indicating copy to clipboard operation
narray copied to clipboard

Make each return an Enumerator object if not given a block to iterate with

Open nat-n opened this issue 11 years ago • 1 comments

It would be useful if NArray provided a standard ruby Enumerator interface. All that would be required is for my_narray.each to return an Enumerator object, like my_array.each does when called without a block.

This would enable use cases such as my_narray.each.each_with_index { ... } or my_narray.each.map { ... } etc.

The follow monkey patch provides this functionality but I'm sure a better solution is possible.

class NArray
  alias_method :native_each, :each

  def each
    return enum_for :each unless block_given?
    native_each { |item| yield item }
  end
end

nat-n avatar May 31 '14 12:05 nat-n

Thank you for suggestion. https://github.com/masa16/narray/commit/67e8187f99cb048cd6533c2b9506deabf4eb8fb8

masa16 avatar Jun 02 '14 09:06 masa16