Class: TPPlus::Nodes::NamespacedVarNode

Inherits:
Object
  • Object
show all
Defined in:
lib/tp_plus/nodes/namespaced_var_node.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(namespaces, var_node) ⇒ NamespacedVarNode

Returns a new instance of NamespacedVarNode.



5
6
7
8
# File 'lib/tp_plus/nodes/namespaced_var_node.rb', line 5

def initialize(namespaces, var_node)
  @namespaces = namespaces
  @var_node   = var_node
end

Instance Attribute Details

#namespacesObject (readonly)

Returns the value of attribute namespaces.



4
5
6
# File 'lib/tp_plus/nodes/namespaced_var_node.rb', line 4

def namespaces
  @namespaces
end

Instance Method Details

#eval(context, options = {}) ⇒ Object



33
34
35
# File 'lib/tp_plus/nodes/namespaced_var_node.rb', line 33

def eval(context,options={})
  @var_node.eval(namespace(context), options)
end

#identifierObject



21
22
23
# File 'lib/tp_plus/nodes/namespaced_var_node.rb', line 21

def identifier
  @var_node.identifier
end

#namespace(context) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/tp_plus/nodes/namespaced_var_node.rb', line 10

def namespace(context)
  @context = context
  @namespaces.each do |ns|
    if @context.get_namespace(ns)
      @context = @context.get_namespace(ns)
    end
  end

  @context
end

#requires_mixed_logic?(context) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/tp_plus/nodes/namespaced_var_node.rb', line 29

def requires_mixed_logic?(context)
  @var_node.requires_mixed_logic?(namespace(context))
end

#target_node(context) ⇒ Object



25
26
27
# File 'lib/tp_plus/nodes/namespaced_var_node.rb', line 25

def target_node(context)
  @var_node.target_node(namespace(context))
end