Skip to content

Instantly share code, notes, and snippets.

@caseyohara
Created May 26, 2013 07:25
Show Gist options
  • Save caseyohara/5651968 to your computer and use it in GitHub Desktop.
Save caseyohara/5651968 to your computer and use it in GitHub Desktop.
module Etc
def collect
result = []
self.each do |elem|
result << yield(elem)
end
return result
end
def detect(ifnone=nil)
self.each do |elem|
return elem if yield(elem)
end
return ifnone.call if ifnone.respond_to? :call
return nil
end
def inject(*args)
enum = self.to_a
result = 0
if block_given?
result = args[0] || enum.shift || result
enum.each do |elem|
result = yield(result, elem)
end
else
method = args[0]
if args[1]
result = args[0]
method = args[1]
end
enum.each do |elem|
result = result.send(method, elem)
end
end
return result
end
def reject
result = []
self.each do |elem|
result << elem if yield(elem) == false
end
return result
end
def select
result = []
self.each do |elem|
result << elem if yield(elem)
end
return result
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment