Method: Red::CallNode::BlockNode#compile_node

Defined in:
lib/red/call_nodes.rb

#compile_node(options = {}) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/red/call_nodes.rb', line 9

def compile_node(options = {})
  receiver = @receiver.compile_node.gsub(/\(\)$/,'')
  arguments = @arguments.compile_nodes.join(', ')
  expression = @expression.compile_node
  case receiver.to_sym
  when :lambda, :function, :proc
    "function(%s) { %s }" % [arguments, expression]
  else
    "%s(function(%s) { %s })" % [receiver, arguments, expression]
  end
end