# 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
Make exception for # (a negative arity method) to accept keyword argument.
ObjectSpace.find(Class, :ifnone=>lambda{1}) { |e| ... } ObjectSpace.find(Class, :ifnone=>lambda{1}) { |e| ... }
# 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
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.