module Functionalist::PointFree::Operator
Public Class Methods
caculate(left, right)
click to toggle source
# File lib/functionalist/point_free/operator.rb, line 5 def self.caculate(left, right) receiver, value = left method_and_args, block = right #puts "#{reciever.inspect} >> ##{method_and_args}" a = case method_and_args.first when :point_free_itself left when :point_free_map [receiver.map(&method_and_args[1]), nil] when :point_free_split [method_and_args[1..-1].map {|x| x.to_proc.call(receiver)}, nil] when :point_free_change_receiver [method_and_args[1],receiver] when :point_free_inject_args #[method_and_args[1],receiver] else #:point_free_concatenate method_and_args = [method_and_args[0]] + [value] if value [receiver.send(*method_and_args, &block), nil] end #puts a.inspect ;puts return a end