diff options
-rw-r--r-- | lib/arel/select_manager.rb | 4 | ||||
-rw-r--r-- | test/test_select_manager.rb | 9 |
2 files changed, 13 insertions, 0 deletions
diff --git a/lib/arel/select_manager.rb b/lib/arel/select_manager.rb index dc80150957..cff3236a33 100644 --- a/lib/arel/select_manager.rb +++ b/lib/arel/select_manager.rb @@ -135,6 +135,10 @@ module Arel self end + def projections= projections + @ctx.projections = projections + end + def order *expr # FIXME: We SHOULD NOT be converting these to SqlLiteral automatically @ast.orders.concat expr.map { |x| diff --git a/test/test_select_manager.rb b/test/test_select_manager.rb index 3d43ecfc11..ada0f1423d 100644 --- a/test/test_select_manager.rb +++ b/test/test_select_manager.rb @@ -860,6 +860,15 @@ module Arel end end + describe 'projections=' do + it 'overwrites projections' do + manager = Arel::SelectManager.new Table.engine + manager.project Arel.sql('foo') + manager.projections = [Arel.sql('bar')] + manager.to_sql.must_be_like %{ SELECT bar } + end + end + describe 'take' do it "knows take" do table = Table.new :users |