aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2010-09-07 15:27:08 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2010-09-07 15:27:08 -0700
commitd0e6b969d678fe1a7da4a9f0cedc47e66dcc4173 (patch)
tree697e8e017322c444fb2e38da7f889d4d0671b429
parent5b480bc60bf5de2b90ba32e854b6a7d2955cbcbb (diff)
downloadrails-d0e6b969d678fe1a7da4a9f0cedc47e66dcc4173.tar.gz
rails-d0e6b969d678fe1a7da4a9f0cedc47e66dcc4173.tar.bz2
rails-d0e6b969d678fe1a7da4a9f0cedc47e66dcc4173.zip
nooping on nil parameters
-rw-r--r--lib/arel/select_manager.rb2
-rw-r--r--spec/arel/select_manager_spec.rb5
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/arel/select_manager.rb b/lib/arel/select_manager.rb
index b574253b05..c9214b20a2 100644
--- a/lib/arel/select_manager.rb
+++ b/lib/arel/select_manager.rb
@@ -19,6 +19,8 @@ module Arel
end
def join relation, klass = Nodes::InnerJoin
+ return self unless relation
+
case relation
when String, Nodes::SqlLiteral
raise if relation.blank?
diff --git a/spec/arel/select_manager_spec.rb b/spec/arel/select_manager_spec.rb
index 0d7dc27571..775a0e6162 100644
--- a/spec/arel/select_manager_spec.rb
+++ b/spec/arel/select_manager_spec.rb
@@ -86,6 +86,11 @@ module Arel
ON "users"."id" = "users_2"."id"
}
end
+
+ it 'noops on nil' do
+ manager = Arel::SelectManager.new Table.engine
+ check manager.join(nil).should == manager
+ end
end
describe 'joins' do