diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2010-12-14 10:22:39 -0800 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2010-12-14 10:22:39 -0800 |
commit | ed2e23c6b981b0a681ebe698ee107493a0e0dff3 (patch) | |
tree | dcd4081786ad4547981d3adfb930040c6224e533 | |
parent | 9653da3c7963834eb9ed93bf24837147fa9b0461 (diff) | |
download | rails-ed2e23c6b981b0a681ebe698ee107493a0e0dff3.tar.gz rails-ed2e23c6b981b0a681ebe698ee107493a0e0dff3.tar.bz2 rails-ed2e23c6b981b0a681ebe698ee107493a0e0dff3.zip |
fixing create_string_join factory method
-rw-r--r-- | lib/arel/factory_methods.rb | 4 | ||||
-rw-r--r-- | lib/arel/nodes/inner_join.rb | 4 | ||||
-rw-r--r-- | lib/arel/nodes/select_statement.rb | 1 | ||||
-rw-r--r-- | lib/arel/visitors/to_sql.rb | 2 | ||||
-rw-r--r-- | test/test_table.rb | 3 |
5 files changed, 9 insertions, 5 deletions
diff --git a/lib/arel/factory_methods.rb b/lib/arel/factory_methods.rb index 85862c24c1..4899adfdc8 100644 --- a/lib/arel/factory_methods.rb +++ b/lib/arel/factory_methods.rb @@ -6,8 +6,8 @@ module Arel klass.new(to, constraint) end - def create_string_join from, to - create_join from, to, Nodes::StringJoin + def create_string_join to + create_join to, nil, Nodes::StringJoin end def create_and clauses diff --git a/lib/arel/nodes/inner_join.rb b/lib/arel/nodes/inner_join.rb index bf10eeac18..d09d9e819b 100644 --- a/lib/arel/nodes/inner_join.rb +++ b/lib/arel/nodes/inner_join.rb @@ -1,6 +1,10 @@ module Arel module Nodes class InnerJoin < Arel::Nodes::Join + def initialize left, right + raise if right == Arel::Nodes::StringJoin + super + end end end end diff --git a/lib/arel/nodes/select_statement.rb b/lib/arel/nodes/select_statement.rb index 6881a66747..c9a0cde4e0 100644 --- a/lib/arel/nodes/select_statement.rb +++ b/lib/arel/nodes/select_statement.rb @@ -5,6 +5,7 @@ module Arel attr_accessor :limit, :orders, :lock, :offset def initialize cores = [SelectCore.new] + #puts caller @cores = cores @orders = [] @limit = nil diff --git a/lib/arel/visitors/to_sql.rb b/lib/arel/visitors/to_sql.rb index b83bf2f6e7..8ceb839a6b 100644 --- a/lib/arel/visitors/to_sql.rb +++ b/lib/arel/visitors/to_sql.rb @@ -228,7 +228,7 @@ module Arel end def visit_Arel_Nodes_StringJoin o - "#{visit o.left} #{visit o.right}" + visit o.left end def visit_Arel_Nodes_OuterJoin o diff --git a/test/test_table.rb b/test/test_table.rb index 54f8b04b79..129d7ba736 100644 --- a/test/test_table.rb +++ b/test/test_table.rb @@ -7,10 +7,9 @@ module Arel end it 'should create join nodes' do - join = @relation.create_string_join 'foo', 'bar' + join = @relation.create_string_join 'foo' assert_kind_of Arel::Nodes::StringJoin, join assert_equal 'foo', join.left - assert_equal 'bar', join.right end it 'should create join nodes' do |