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
|