Class: Sfp::Visitor::ReferenceModifier

Inherits:
Object
  • Object
show all
Defined in:
lib/sfp/visitors.rb

Instance Method Summary collapse

Instance Method Details

#visit(name, value, parent) ⇒ Object



90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/sfp/visitors.rb', line 90

def visit(name, value, parent)
  if value.is_a?(String) and value.isref and parent.isobject
    if  value.length >= 8 and value[0,8] == '$.parent'
      _, _, rest = value.split('.', 3)
      if parent.has_key?('_parent')
        parent[name] = parent['_parent'].ref + (rest == nil ? '' : '.' + rest)
      else
        raise Exception
      end
    elsif value.length >= 6 and value[0,6] == '$.this'
      _, _, rest = value.split('.', 3)
      parent[name] = parent.ref + (rest == nil ? '' : '.' + rest)
    end
  end
  true
end