Sha256: dd2ed7e9b85461a58df7311a4a2719b9afc38cddb91d67ad27ee1574af874b7a

Contents?: true

Size: 701 Bytes

Versions: 7

Compression:

Stored size: 701 Bytes

Contents

require 'facets/enumerable/per'

module Enumerable

  # Returns an elemental object. This allows
  # you to map a method on to every element.
  #
  #   r = [1,2,3].every + 3
  #   r  #=> [4,5,6]
  #
  def every
    per(:map)
  end

  # In place version of #every.
  #
  def every!
    raise NoMethodError unless respond_to?(:map!)
    per(:map!)
  end

  #--
  # These used to be defined via Functors as follows ...
  #
  #  def every
  #    Functor.new do |op,*args|
  #      map{ |a| a.send(op,*args) }
  #    end
  #  end
  #
  #  def every!
  #    raise NoMethodError unless respond_to?(:map!)
  #    Functor.new do |op,*args|
  #      map!{ |a| a.send(op,*args) }
  #    end
  #  end
  #++

end

Version data entries

7 entries across 6 versions & 1 rubygems

Version Path
facets-2.9.3 lib/core/facets/enumerable/every.rb
facets-2.9.2 lib/core/facets/enumerable/every.rb
facets-2.9.2 src/core/facets/enumerable/every.rb
facets-2.9.1 lib/core/facets/enumerable/every.rb
facets-2.9.0 lib/core/facets/enumerable/every.rb
facets-2.9.0.pre.2 lib/core/facets/enumerable/every.rb
facets-2.9.0.pre.1 lib/core/facets/enumerable/every.rb