Module: Switchman::Arel::Visitors::ToSql

Defined in:
lib/switchman/arel.rb

Instance Method Summary collapse

Instance Method Details

#quote_local_table_name(name) ⇒ Object



36
37
38
39
# File 'lib/switchman/arel.rb', line 36

def quote_local_table_name name
  return name if ::Arel::Nodes::SqlLiteral === name
  @connection.quote_local_table_name(name)
end

#visit_Arel_Attributes_Attribute(*args) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/switchman/arel.rb', line 26

def visit_Arel_Attributes_Attribute *args
  o = args.first
  join_name = o.relation.table_alias || o.relation.name
  result = "#{quote_local_table_name join_name}.#{quote_column_name o.name}"
  unless ::Rails.version < '4.2'.freeze
    result = args.last << result
  end
  result
end

#visit_Arel_Nodes_TableAlias(*args) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/switchman/arel.rb', line 14

def visit_Arel_Nodes_TableAlias *args
  if ::Rails.version < '4.2'
    o = args.shift
    "#{visit o.relation, *args} #{quote_local_table_name o.name}"
  else
    o, collector = args
    collector = visit o.relation, collector
    collector << " "
    collector << quote_local_table_name(o.name)
  end
end