class Sfp::Visitor::ReferenceModifier

Public Instance Methods

visit(name, value, parent) click to toggle source
# 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