Skip to content
Permalink
Browse files
Do not allow passing the column name to sum when a block is passed
  • Loading branch information
rafaelfranca committed Jan 17, 2019
1 parent 67356f2 commit 91ddb30083430622188d76eb9f29b78131df67f9
@@ -1,3 +1,7 @@
* Do not allow passing the column name to `sum` when a block is passed.

*Rafael Mendonça França*

* Do not allow passing the column name to `count` when a block is passed.

*Rafael Mendonça França*
@@ -84,15 +84,13 @@ def maximum(column_name)
def sum(column_name = nil)
if block_given?
unless column_name.nil?
ActiveSupport::Deprecation.warn \
"When `sum' is called with a block, it ignores other arguments. " \
"This behavior is now deprecated and will result in an ArgumentError in Rails 6.0."
raise ArgumentError, "Column name argument is not supported when a block is passed."
end

return super()
super()
else
calculate(:sum, column_name)
end

calculate(:sum, column_name)
end

# This calculates aggregate values in the given column. Methods for #count, #sum, #average,
@@ -923,9 +923,9 @@ def test_count_with_block_and_column_name_raises_an_error
end
end

def test_deprecate_sum_with_block_and_column_name
assert_deprecated do
assert_equal 6, Account.sum(:firm_id) { 1 }
def test_sum_with_block_and_column_name_raises_an_error
assert_raises(ArgumentError) do
Account.sum(:firm_id) { 1 }
end
end

0 comments on commit 91ddb30

Please sign in to comment.