diff options
author | Ryuta Kamizono <kamipo@gmail.com> | 2017-05-29 09:02:45 +0900 |
---|---|---|
committer | Ryuta Kamizono <kamipo@gmail.com> | 2017-05-29 09:02:45 +0900 |
commit | 36417cf07790b645b3f3c0fde095d1059bcf0ea9 (patch) | |
tree | 1c4a75608971c9afba27e4653805f86628fdaea6 /activerecord/lib | |
parent | acdf234a4cf28fdf20dcd49ac4013d84448d65b1 (diff) | |
download | rails-36417cf07790b645b3f3c0fde095d1059bcf0ea9.tar.gz rails-36417cf07790b645b3f3c0fde095d1059bcf0ea9.tar.bz2 rails-36417cf07790b645b3f3c0fde095d1059bcf0ea9.zip |
Deprecate passing arguments and block at the same time to `count` and `sum` in `ActiveRecord::Calculations`
`select`, `count`, and `sum` in `Relation` are also `Enumerable` method
that can be passed block. `select` with block already doesn't take
arguments since 4fc3366. This is follow up of that.
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/relation/calculations.rb | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/relation/calculations.rb b/activerecord/lib/active_record/relation/calculations.rb index 861b2125d4..c562f214c9 100644 --- a/activerecord/lib/active_record/relation/calculations.rb +++ b/activerecord/lib/active_record/relation/calculations.rb @@ -37,7 +37,16 @@ module ActiveRecord # Note: not all valid {Relation#select}[rdoc-ref:QueryMethods#select] expressions are valid #count expressions. The specifics differ # between databases. In invalid cases, an error from the database is thrown. def count(column_name = nil) - return super() if block_given? + if block_given? + unless column_name.nil? + ActiveSupport::Deprecation.warn \ + "When `count' is called with a block, it ignores other arguments. " \ + "This behavior is now deprecated and will result in an ArgumentError in Rails 5.3." + end + + return super() + end + calculate(:count, column_name) end @@ -73,7 +82,16 @@ module ActiveRecord # # Person.sum(:age) # => 4562 def sum(column_name = nil) - return super() if block_given? + 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 5.3." + end + + return super() + end + calculate(:sum, column_name) end |