Module: Iolite::Functinal
- Included in:
- Iolite
- Defined in:
- lib/iolite/functinal/bind.rb,
lib/iolite/functinal/send.rb,
lib/iolite/functinal/invoke.rb
Class Method Summary collapse
- .bind(func, *args_) ⇒ Object
- .invoke(func, *args) ⇒ Object
- .invoke_a(funcs, *args) ⇒ Object
- .send(func, method, *args_, &block) ⇒ Object
Class Method Details
.bind(func, *args_) ⇒ Object
4 5 6 7 8 9 10 |
# File 'lib/iolite/functinal/bind.rb', line 4 def bind func, *args_ Iolite.lazy { |*args| # func.call(*invoke_a(args_, *args)) invoke(func, *args).call(*invoke_a(args_, *args)) # func.call(*args).call(*invoke_a(args_, *args)) } end |
.invoke(func, *args) ⇒ Object
2 3 4 |
# File 'lib/iolite/functinal/invoke.rb', line 2 def invoke func, *args func.respond_to?(:iolite_functinal_invoke_call) ? func.iolite_functinal_invoke_call(*args) : func end |
.invoke_a(funcs, *args) ⇒ Object
7 8 9 |
# File 'lib/iolite/functinal/invoke.rb', line 7 def invoke_a funcs, *args funcs.map{ |it| invoke(it, *args) } end |
.send(func, method, *args_, &block) ⇒ Object
4 5 6 7 8 9 10 11 |
# File 'lib/iolite/functinal/send.rb', line 4 def send func, method, *args_, &block Lazy.new { |*args| # block = invoke(block, *args) if block invoke(func, *args).send(method, *invoke_a(args_, *args), &block) # invoke(func, *args).send(method, *invoke_a(args_, *args), &block) # func.call(*args).send(method, *invoke_a(args_, *args), &block) } end |