From 88c91f7cdbe904c0a215a05be76ae120eacb24fb Mon Sep 17 00:00:00 2001 From: Jon Leighton Date: Thu, 11 Aug 2011 08:43:21 +0100 Subject: [PATCH] Add SelectManager#projections= method to overwrite projections --- lib/arel/select_manager.rb | 4 ++++ test/test_select_manager.rb | 9 +++++++++ 2 files changed, 13 insertions(+) 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