aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2010-09-07 16:45:25 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2010-09-07 16:45:25 -0700
commit437a9a2225008ce859b4485dd5808843f40f8a58 (patch)
tree1db7425fb6e8d24fcd1aea51ddf992fb6f923fb5
parent5ab502a755d0031d229278b6f14123c45623dd04 (diff)
downloadrails-437a9a2225008ce859b4485dd5808843f40f8a58.tar.gz
rails-437a9a2225008ce859b4485dd5808843f40f8a58.tar.bz2
rails-437a9a2225008ce859b4485dd5808843f40f8a58.zip
count takes distinct
-rw-r--r--lib/arel/attributes/attribute.rb4
-rw-r--r--spec/arel/attributes/attribute_spec.rb7
2 files changed, 9 insertions, 2 deletions
diff --git a/lib/arel/attributes/attribute.rb b/lib/arel/attributes/attribute.rb
index 6087dc8e52..464d78188a 100644
--- a/lib/arel/attributes/attribute.rb
+++ b/lib/arel/attributes/attribute.rb
@@ -9,8 +9,8 @@ module Arel
Nodes::In.new self, other
end
- def count
- Nodes::Count.new [self]
+ def count distinct = false
+ Nodes::Count.new [self], distinct
end
end
diff --git a/spec/arel/attributes/attribute_spec.rb b/spec/arel/attributes/attribute_spec.rb
index f9eb56391e..d6f07f8d99 100644
--- a/spec/arel/attributes/attribute_spec.rb
+++ b/spec/arel/attributes/attribute_spec.rb
@@ -8,6 +8,13 @@ module Arel
relation = Table.new(:users)
relation[:id].count.should be_kind_of Nodes::Count
end
+
+ it 'should take a distinct param' do
+ relation = Table.new(:users)
+ count = relation[:id].count(nil)
+ count.should be_kind_of Nodes::Count
+ count.distinct.should be_nil
+ end
end
describe '#eq' do