Method: Enumerable::Arguments#find

Defined in:
lib/supplemental/facets/enumargs.rb

#find(*args, &yld) ⇒ Object Also known as: detect

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| ... }


94
95
96
97
98
99
100
101
102
# File 'lib/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