Class: Arel::TreeManager
- Inherits:
 - 
      Object
      
        
- Object
 - Arel::TreeManager
 
 
- Includes:
 - FactoryMethods
 
- Defined in:
 - lib/arel/tree_manager.rb
 
Direct Known Subclasses
Defined Under Namespace
Modules: StatementMethods
Instance Attribute Summary collapse
- 
  
    
      #ast  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute ast.
 
Instance Method Summary collapse
- 
  
    
      #initialize  ⇒ TreeManager 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of TreeManager.
 - #initialize_copy(other) ⇒ Object
 - #to_dot ⇒ Object
 - #to_sql(engine = Table.engine) ⇒ Object
 - #where(expr) ⇒ Object
 
Methods included from FactoryMethods
#coalesce, #create_and, #create_false, #create_join, #create_on, #create_string_join, #create_table_alias, #create_true, #grouping, #lower
Constructor Details
#initialize ⇒ TreeManager
Returns a new instance of TreeManager.
      43 44 45  | 
    
      # File 'lib/arel/tree_manager.rb', line 43 def initialize @ctx = nil end  | 
  
Instance Attribute Details
#ast ⇒ Object (readonly)
Returns the value of attribute ast.
      41 42 43  | 
    
      # File 'lib/arel/tree_manager.rb', line 41 def ast @ast end  | 
  
Instance Method Details
#initialize_copy(other) ⇒ Object
      59 60 61 62  | 
    
      # File 'lib/arel/tree_manager.rb', line 59 def initialize_copy(other) super @ast = @ast.clone end  | 
  
#to_dot ⇒ Object
      47 48 49 50 51  | 
    
      # File 'lib/arel/tree_manager.rb', line 47 def to_dot collector = Arel::Collectors::PlainString.new collector = Visitors::Dot.new.accept @ast, collector collector.value end  | 
  
#to_sql(engine = Table.engine) ⇒ Object
      53 54 55 56 57  | 
    
      # File 'lib/arel/tree_manager.rb', line 53 def to_sql(engine = Table.engine) collector = Arel::Collectors::SQLString.new collector = engine.connection.visitor.accept @ast, collector collector.value end  | 
  
#where(expr) ⇒ Object
      64 65 66 67 68 69 70  | 
    
      # File 'lib/arel/tree_manager.rb', line 64 def where(expr) if Arel::TreeManager === expr expr = expr.ast end @ctx.wheres << expr self end  |