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

Methods

Public Class methods

[Source]

    # File lib/more/facets/enumargs.rb, line 47
47:   def self.wrap_enumerable_method( methodname )
48: 
49:     m = methodname
50:     meth = Enumerable.instance_method(m)
51:     arity = meth.arity
52: 
53:     case arity <=> 0
54:     when 0
55:       class_eval %{
56:         def #{m}( *args, &yld )
57:           enum_for(:each, *args).#{m}( &yld )
58:         end
59:       }
60:     when 1
61:       class_eval %{
62:         def #{m}( *args, &yld )
63:           args, each_args = args[0...#{arity}], args[#{arity}..-1]
64:           enum_for(:each, *each_args).#{m}( *args, &yld )
65:         end
66:       }
67:     else
68:       class_eval %{
69:         def #{m}( *args, &yld )
70:           enum_for(:each).#{m}( *args, &yld )
71:         end
72:       }
73:     end
74:   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/more/facets/enumargs.rb, line 91
91:   def find(*args, &yld)  # future use **keys ?
92:     if Hash === args.last and args.last.key?(:ifnone)
93:       ifnone = args.last.delete(:ifnone)
94:       args.pop if args.last.empty?
95:       enum_for(:each, *args).find( ifnone, &yld )
96:     else
97:       enum_for(:each, *args).find( &yld )
98:     end
99:   end

[Source]

    # File lib/more/facets/enumargs.rb, line 81
81:   def to_a(*args)
82:     map(*args){ |x| x }
83:   end

[Validate]