Class: Arel::Enhance::Visitor

Inherits:
Visitors::Dot show all
Defined in:
lib/arel/enhance/visitor.rb

Overview

rubocop:disable Naming/MethodName

Constant Summary collapse

DEFAULT_CONTEXT_ENHANCERS =
{
  Arel::Table => Arel::Enhance::ContextEnhancer::ArelTable,
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Visitors::Dot

#terminal, #visit_ActiveModel_Attribute_WithCastValue, #visit_ActiveRecord_Relation_QueryAttribute, #visit_Arel_DeleteManager, #visit_Arel_InsertManager, #visit_Arel_Nodes_AtTimeZone, #visit_Arel_Nodes_BindParam, #visit_Arel_Nodes_Case, #visit_Arel_Nodes_Conflict, #visit_Arel_Nodes_Dealocate, #visit_Arel_Nodes_Exists, #visit_Arel_Nodes_Factorial, #visit_Arel_Nodes_InfixOperation, #visit_Arel_Nodes_NamedFunction, #visit_Arel_Nodes_Overlaps, #visit_Arel_Nodes_Overlay, #visit_Arel_Nodes_Prepare, #visit_Arel_Nodes_Substring, #visit_Arel_Nodes_Trim, #visit_Arel_Nodes_TypeCast, #visit_Arel_Nodes_UnaryOperation, #visit_Arel_Nodes_ValuesList, #visit_Arel_Nodes_VariableSet, #visit_Arel_SelectManager, #visit_Arel_UpdateManager

Methods included from Visitors::Dot::TableExtension

#visit_Arel_Table

Methods included from Visitors::Dot::FunctionExtension

#function

Methods included from Visitors::Dot::OrderingExtension

#visit_Arel_Nodes_Ordering

Methods included from Visitors::Dot::SelectCoreExtension

#visit_Arel_Nodes_SelectCore

Methods included from Visitors::Dot::DeleteStatementExtension

#visit_Arel_Nodes_DeleteStatement

Methods included from Visitors::Dot::InsertStatementExtension

#visit_Arel_Nodes_InsertStatement

Methods included from Visitors::Dot::SelectStatementExtension

#visit_Arel_Nodes_SelectStatement

Methods included from Visitors::Dot::UpdateStatementExtension

#visit_Arel_Nodes_UpdateStatement

Methods included from Visitors::Dot::AttributesAttributeExtension

#visit_Arel_Attributes_Attribute

Instance Attribute Details

#context_enhancersObject (readonly)

Returns the value of attribute context_enhancers.



11
12
13
# File 'lib/arel/enhance/visitor.rb', line 11

def context_enhancers
  @context_enhancers
end

Instance Method Details

#accept(object, context_enhancers = DEFAULT_CONTEXT_ENHANCERS) ⇒ Object



13
14
15
16
17
18
# File 'lib/arel/enhance/visitor.rb', line 13

def accept(object, context_enhancers = DEFAULT_CONTEXT_ENHANCERS)
  @context_enhancers = context_enhancers

  root_node = Arel::Enhance::Node.new(object)
  accept_with_root(object, root_node, context_enhancers)
end

#accept_with_root(object, root_node, context_enhancers = DEFAULT_CONTEXT_ENHANCERS) ⇒ Object



20
21
22
23
24
25
26
27
28
# File 'lib/arel/enhance/visitor.rb', line 20

def accept_with_root(object, root_node, context_enhancers = DEFAULT_CONTEXT_ENHANCERS)
  @context_enhancers = context_enhancers

  with_node(root_node) do
    visit object
  end

  root_node
end