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



97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# File 'lib/sfp/visitors.rb', line 97

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')
				val = parent['_parent'].ref
				val << ".#{rest}" if not rest.nil?
				parent[name] = val
			else
				raise Exception
			end
		elsif value.length >= 6 and value[0,6] == '$.this'
			_, _, rest = value.split('.', 3)
			val = parent.ref
			val << ".#{rest}" if not rest.nil?
			parent[name] = val
		end
	end
	true
end