Class: Code::Node::CallArgument

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

Instance Method Summary collapse

Methods inherited from Code::Node

#resolve

Constructor Details

#initialize(parsed) ⇒ CallArgument

Returns a new instance of CallArgument.



6
7
8
9
# File 'lib/code/node/call_argument.rb', line 6

def initialize(parsed)
  @value = Node::Code.new(parsed.delete(:value))
  @name = parsed.delete(:name)
end

Instance Method Details

#evaluate(**args) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/code/node/call_argument.rb', line 11

def evaluate(**args)
  if @name
    Object::Argument.new(@value.evaluate(**args), name:)
  else
    Object::Argument.new(@value.evaluate(**args))
  end
end

#keyword?Boolean

Returns:



19
20
21
# File 'lib/code/node/call_argument.rb', line 19

def keyword?
  !!@name
end

#nameObject



27
28
29
# File 'lib/code/node/call_argument.rb', line 27

def name
  Object::String.new(@name)
end

#regular?Boolean

Returns:



23
24
25
# File 'lib/code/node/call_argument.rb', line 23

def regular?
  !keyword?
end