diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2010-09-07 15:27:08 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2010-09-07 15:27:08 -0700 |
commit | d0e6b969d678fe1a7da4a9f0cedc47e66dcc4173 (patch) | |
tree | 697e8e017322c444fb2e38da7f889d4d0671b429 | |
parent | 5b480bc60bf5de2b90ba32e854b6a7d2955cbcbb (diff) | |
download | rails-d0e6b969d678fe1a7da4a9f0cedc47e66dcc4173.tar.gz rails-d0e6b969d678fe1a7da4a9f0cedc47e66dcc4173.tar.bz2 rails-d0e6b969d678fe1a7da4a9f0cedc47e66dcc4173.zip |
nooping on nil parameters
-rw-r--r-- | lib/arel/select_manager.rb | 2 | ||||
-rw-r--r-- | spec/arel/select_manager_spec.rb | 5 |
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 |