Class: Arel::Visitors::ToSql

Inherits:
Object
  • Object
show all
Defined in:
lib/composite_primary_keys/arel/to_sql.rb

Instance Method Summary collapse

Instance Method Details

#visit_Arel_Nodes_In(o, collector) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/composite_primary_keys/arel/to_sql.rb', line 4

def visit_Arel_Nodes_In o, collector
  if Array === o.right && o.right.empty?
    collector << '1=0'
  else
    # CPK
    collector << "("
    collector = visit o.left, collector
    # CPK
    collector << ")"
    collector << " IN ("
    visit(o.right, collector) << ")"
  end
end

#visit_CompositePrimaryKeys_CompositeKeys(o, collector) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/composite_primary_keys/arel/to_sql.rb', line 18

def visit_CompositePrimaryKeys_CompositeKeys o, collector
  values = o.map do |key|
    case key
      when Arel::Attributes::Attribute
        "#{key.relation.name}.#{key.name}"
      else
        key
    end
  end
  collector << "#{values.join(', ')}"
  collector
end