diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2010-09-28 16:57:33 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2010-09-28 16:57:33 -0700 |
commit | f0bf1cf7627562c87b6717b6443a56e3060dfda3 (patch) | |
tree | 2768c98181df924e6f6248d96f523a9dc61dc797 /lib/arel | |
parent | f4c12fcc4aa29081f5fe51fc3294ccef55280cc8 (diff) | |
download | rails-f0bf1cf7627562c87b6717b6443a56e3060dfda3.tar.gz rails-f0bf1cf7627562c87b6717b6443a56e3060dfda3.tar.bz2 rails-f0bf1cf7627562c87b6717b6443a56e3060dfda3.zip |
refactoring join_sql to return nil if there are no sources
Diffstat (limited to 'lib/arel')
-rw-r--r-- | lib/arel/select_manager.rb | 2 | ||||
-rw-r--r-- | lib/arel/table.rb | 21 |
2 files changed, 12 insertions, 11 deletions
diff --git a/lib/arel/select_manager.rb b/lib/arel/select_manager.rb index 77930a6bb1..adbf1316d7 100644 --- a/lib/arel/select_manager.rb +++ b/lib/arel/select_manager.rb @@ -128,6 +128,8 @@ module Arel end def join_sql + return nil unless @ctx.froms + viz = Visitors::JoinSql.new @engine Nodes::SqlLiteral.new viz.accept @ctx end diff --git a/lib/arel/table.rb b/lib/arel/table.rb index e71d7d392c..171d165bc2 100644 --- a/lib/arel/table.rb +++ b/lib/arel/table.rb @@ -49,40 +49,39 @@ module Arel end def join relation, klass = Nodes::InnerJoin - return select_manager unless relation + return from(self) unless relation - sm = SelectManager.new(@engine) case relation when String, Nodes::SqlLiteral raise if relation.blank? - sm.from Nodes::StringJoin.new(self, relation) + from Nodes::StringJoin.new(self, relation) else - sm.from klass.new(self, relation, nil) + from klass.new(self, relation, nil) end end def group *columns - select_manager.group(*columns) + from(self).group(*columns) end def order *expr - select_manager.order(*expr) + from(self).order(*expr) end def where condition - select_manager.where condition + from(self).where condition end def project *things - select_manager.project(*things) + from(self).project(*things) end def take amount - select_manager.take amount + from(self).take amount end def having expr - select_manager.having expr + from(self).having expr end def columns @@ -98,7 +97,7 @@ module Arel end def select_manager - SelectManager.new(@engine, self) + SelectManager.new(@engine) end private |