Module: Antlers::Variables

Included in:
ForNode, VarNode
Defined in:
lib/modules/variables.rb

Instance Method Summary collapse

Instance Method Details

#evaluate_variable(name:, current_binding:) ⇒ Object

A variable is deliberately limited in what it can represent.

1. An instance variable
2. A method call/local variable
3. A static string


7
8
9
10
11
12
13
14
15
16
17
# File 'lib/modules/variables.rb', line 7

def evaluate_variable(name:, current_binding:)
  if current_binding
    return current_binding.receiver.instance_variable_get(name) if name.start_with?('@')
    return current_binding.local_variable_get(name) if current_binding.local_variable_defined?(name)
    return current_binding.receiver.send(name.to_sym) if current_binding.receiver.respond_to?(name.to_sym)
  end

  @value.to_s
rescue NameError
  @value.to_s
end