From 1aeefa68bc93fddfba1d6549bb870d3829dfe0e2 Mon Sep 17 00:00:00 2001 From: Kevin Deisz Date: Fri, 27 Oct 2017 10:42:09 -0400 Subject: Allow count nodes to have math functions --- lib/arel/nodes/count.rb | 2 ++ test/nodes/test_count.rb | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/lib/arel/nodes/count.rb b/lib/arel/nodes/count.rb index a7c6236a22..4dd9be453f 100644 --- a/lib/arel/nodes/count.rb +++ b/lib/arel/nodes/count.rb @@ -2,6 +2,8 @@ module Arel module Nodes class Count < Arel::Nodes::Function + include Math + def initialize expr, distinct = false, aliaz = nil super(expr, aliaz) @distinct = distinct diff --git a/test/nodes/test_count.rb b/test/nodes/test_count.rb index 85e93b1927..29883df681 100644 --- a/test/nodes/test_count.rb +++ b/test/nodes/test_count.rb @@ -31,4 +31,13 @@ describe Arel::Nodes::Count do assert_equal 2, array.uniq.size end end + + describe 'math' do + it 'allows mathematical functions' do + table = Arel::Table.new :users + (table[:id].count + 1).to_sql.must_be_like %{ + (COUNT("users"."id") + 1) + } + end + end end -- cgit v1.2.3