Class: Code::Node::Function

Inherits:
Code::Node show all
Defined in:
lib/code/node/function.rb

Instance Method Summary collapse

Constructor Details

#initialize(parsed) ⇒ Function

Returns a new instance of Function.



4
5
6
7
8
9
10
11
12
13
# File 'lib/code/node/function.rb', line 4

def initialize(parsed)
  @parameters =
    parsed
      .delete(:parameters) { [] }
      .map { |parameter| Node::FunctionParameter.new(parameter) }

  @body = Node::Code.new(parsed.delete(:body))

  super(parsed)
end

Instance Method Details

#evaluate(**args) ⇒ Object



15
16
17
# File 'lib/code/node/function.rb', line 15

def evaluate(**args)
  ::Code::Object::Function.new(parameters: @parameters, body: @body)
end