Module Enumerable::Arguments
In: lib/facets/supplemental/facets/enumargs.rb

Methods

Public Class methods

[Source]

# File lib/facets/supplemental/facets/enumargs.rb, line 50
  def self.wrap_enumerable_method( methodname )

    m = methodname
    meth = Enumerable.instance_method(m)
    arity = meth.arity

    case arity <=> 0
    when 0
      class_eval %{
        def #{m}( *args, &yld )
          enum_for(:each, *args).#{m}( &yld )
        end
      }
    when 1
      class_eval %{
        def #{m}( *args, &yld )
          args, each_args = args[0...#{arity}], args[#{arity}..-1]
          enum_for(:each, *each_args).#{m}( *args, &yld )
        end
      }
    else
      class_eval %{
        def #{m}( *args, &yld )
          enum_for(:each).#{m}( *args, &yld )
        end
      }
    end
  end

Public Instance methods

detect(*args, &yld)

Alias for find

Make exception for find (a negative arity method) to accept keyword argument.

  ObjectSpace.find(Class, :ifnone=>lambda{1}) { |e| ... }
  ObjectSpace.find(Class, :ifnone=>lambda{1}) { |e| ... }

[Source]

# File lib/facets/supplemental/facets/enumargs.rb, line 94
  def find(*args, &yld)  # future use **keys ?
    if Hash === args.last and args.last.key?(:ifnone)
      ifnone = args.last.delete(:ifnone)
      args.pop if args.last.empty?
      enum_for(:each, *args).find( ifnone, &yld )
    else
      enum_for(:each, *args).find( &yld )
    end
  end

[Source]

# File lib/facets/supplemental/facets/enumargs.rb, line 84
  def to_a(*args)
    map(*args){ |x| x }
  end

[Validate]