Permalink
Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
37 lines (33 sloc) 673 Bytes
class Module
# add a _with_index to iterators
def with_index(*args)
args.each {|meth|
module_eval <<-here
def #{meth.to_s}_with_index(*args)
i = -1
send(:#{meth},*args) {|n|
i = i+1
yield(n,i)
}
end
here
}
end
# add a 'f' method called with a method rather than a block
def _f(*args)
args.each {|meth|
module_eval <<-here
def #{meth}f(*args)
#{meth} {|obj| obj.send(*args)}
end
here
}
end
end
module Enumerable
with_index :map
_f :map
end
a = %w(all your base are belong to us)
p a.map_with_index {|n,i| "(#{i}) #{n}"}
p a.mapf(:reverse)