module Iolite::Functinal

Public Class Methods

bind(func, *args_) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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

Private Instance Methods

bind(func, *args_) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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