mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
4e646bb281
Fixes #39976 Prior to this commit it was possible to pass a single argument block to `ActiveSupport::Notifications.subscribe`, rather than 5 separate arguments: ```rb ActiveSupport::Notifications.subscribe('some_event') do |event| puts "Reacting to #{event.name}" end ``` But it was not possible to do the same with a lambda, since the lambda parameter is a required (`:req`) parameter, but we were checking only for an optional (`:opt`) parameter. ```rb listener = ->(event) do puts "Reacting to #{event.name}" end ActiveSupport::Notifications.subscribe('some_event', &listener) ``` It was also not possible to do this with a custom callable object, since the custom callable does not respond directly to `:parameters` (although it's `:call` method object does). ```rb class CustomListener def call(event) puts "Reacting to #{event.name}" end end ActiveSupport::Notifications.subscribe('some_event', CustomListener.new) ``` Prior to this commit these examples would have raised `ArgumentError: wrong number of arguments (given 5, expected 1)`. With this commit the single argument lambda and custom callable work like the single argument block. |
||
---|---|---|
.. | ||
bin | ||
lib | ||
test | ||
.gitignore | ||
activesupport.gemspec | ||
CHANGELOG.md | ||
MIT-LICENSE | ||
Rakefile | ||
README.rdoc |
= Active Support -- Utility classes and Ruby extensions from Rails Active Support is a collection of utility classes and standard library extensions that were found useful for the Rails framework. These additions reside in this package so they can be loaded as needed in Ruby projects outside of Rails. You can read more about the extensions in the {Active Support Core Extensions}[https://edgeguides.rubyonrails.org/active_support_core_extensions.html] guide. == Download and installation The latest version of Active Support can be installed with RubyGems: $ gem install activesupport Source code can be downloaded as part of the Rails project on GitHub: * https://github.com/rails/rails/tree/master/activesupport == License Active Support is released under the MIT license: * https://opensource.org/licenses/MIT == Support API documentation is at: * https://api.rubyonrails.org Bug reports for the Ruby on Rails project can be filed here: * https://github.com/rails/rails/issues Feature requests should be discussed on the rails-core mailing list here: * https://discuss.rubyonrails.org/c/rubyonrails-core