module Invokable::Core
The core methods that are mixed into classes at a class and instance level when they include {Invokable}.
@note This module should not be used directly.
Public Instance Methods
Call invokable with one argument, allows invocables to be used in case statements and Enumerable#grep.
@version 0.7.0
# File lib/invokable/core.rb, line 61 def ===(obj) call(obj) end
For Proc
compatibility, forwards it's arguments to “call”.
@version 0.7.0
# File lib/invokable/core.rb, line 53 def [](*args) call(*args) end
Return the arity (i.e. the number of arguments) of the “call” method.
@version 0.5.0
@return [Integer]
# File lib/invokable/core.rb, line 46 def arity method(:call).arity end
Return 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.
@param arity [Integer] @return [Proc]
# File lib/invokable/core.rb, line 27 def curry(arity = nil) to_proc.curry(arity) end
Return a memoized proc, that is, a proc that caches it's return values by it's arguments.
@return [Proc]
# File lib/invokable/core.rb, line 34 def memoize lambda do |*args| @memo ||= {} @memo[args.hash] ||= call(*args) end end
Return a Proc
that forwards it's arguments along to call.
@return [Proc]
# File lib/invokable/core.rb, line 14 def to_proc lambda do |*args| call(*args) end end