Class: Method

Inherits:
Object show all
Defined in:
lib/mug/apply.rb,
lib/mug/iterator/method.rb

Instance Method Summary collapse

Instance Method Details

#apply(*args) ⇒ Object

Curries this Method and partially applies parameters. If a sufficient number of arguments are supplied, it passes the supplied arguments to the original proc and returns the result. Otherwise, returns another curried proc that takes the rest of arguments.



41
42
43
# File 'lib/mug/apply.rb', line 41

def apply(*args)
  curry.call(*args)
end

#curry(n = nil) ⇒ Object

Returns a curried proc. If the optional arity argument is given, it determines the number of arguments. A curried proc receives some arguments. If a sufficient number of arguments are supplied, it passes the supplied arguments to the original proc and returns the result. Otherwise, returns another curried proc that takes the rest of arguments.



25
26
27
28
29
30
31
# File 'lib/mug/apply.rb', line 25

def curry(n=nil)
  if n
    to_proc.curry n
  else
    to_proc.curry
  end
end

#to_iter(*args) ⇒ Object

Creates a new Iterator for this method, initially invoked on this method’s receiver.



9
10
11
# File 'lib/mug/iterator/method.rb', line 9

def to_iter *args
  Iterator.new receiver, name, *args
end