Class: Squeel::Visitors::SymbolVisitor
- Inherits:
-
Visitor
- Object
- Visitor
- Squeel::Visitors::SymbolVisitor
show all
- Defined in:
- lib/squeel/visitors/symbol_visitor.rb
Constant Summary
Constants inherited
from Visitor
Visitor::DISPATCH
Instance Attribute Summary
Attributes inherited from Visitor
#context
Instance Method Summary
collapse
Methods inherited from Visitor
#can_visit?, can_visit?, #hash_context_shifted?, #quote, #quoted?, #visit, #visit_Array, #visit_passthrough
Constructor Details
Returns a new instance of SymbolVisitor.
7
8
|
# File 'lib/squeel/visitors/symbol_visitor.rb', line 7
def initialize
end
|
Instance Method Details
#accept(object, parent = nil) ⇒ Object
10
11
12
|
# File 'lib/squeel/visitors/symbol_visitor.rb', line 10
def accept(object, parent = nil)
visit(object, parent)
end
|
#visit_Hash(o, parent) ⇒ Object
16
17
18
19
20
21
22
|
# File 'lib/squeel/visitors/symbol_visitor.rb', line 16
def visit_Hash(o, parent)
{}.tap do |hash|
o.each do |key, value|
hash[visit(key, parent)] = visit(value, parent)
end
end
end
|
#visit_Squeel_Nodes_Join(o, parent) ⇒ Object
38
39
40
|
# File 'lib/squeel/visitors/symbol_visitor.rb', line 38
def visit_Squeel_Nodes_Join(o, parent)
o._name
end
|
#visit_Squeel_Nodes_KeyPath(o, parent) ⇒ Object
32
33
34
35
36
|
# File 'lib/squeel/visitors/symbol_visitor.rb', line 32
def visit_Squeel_Nodes_KeyPath(o, parent)
o.path.reverse.map(&:to_sym).inject do |hash, key|
{key => hash}
end
end
|
#visit_Squeel_Nodes_Stub(o, parent) ⇒ Object
28
29
30
|
# File 'lib/squeel/visitors/symbol_visitor.rb', line 28
def visit_Squeel_Nodes_Stub(o, parent)
o.symbol
end
|
#visit_Symbol(o, parent) ⇒ Object
24
25
26
|
# File 'lib/squeel/visitors/symbol_visitor.rb', line 24
def visit_Symbol(o, parent)
o
end
|