diff options
author | okuramasafumi <masafumi.o1988@gmail.com> | 2019-04-29 11:32:49 +0900 |
---|---|---|
committer | okuramasafumi <masafumi.o1988@gmail.com> | 2019-04-29 14:11:13 +0900 |
commit | fd205edd7dacc832dd6298531702dbea00aba8dd (patch) | |
tree | e316a2841ccbc16f71484b0e4063f2b0704826f9 | |
parent | 3c823271af52a61e825123def170fe2187057577 (diff) | |
download | rails-fd205edd7dacc832dd6298531702dbea00aba8dd.tar.gz rails-fd205edd7dacc832dd6298531702dbea00aba8dd.tar.bz2 rails-fd205edd7dacc832dd6298531702dbea00aba8dd.zip |
Improve error message of ActiveSupport delegate
ActiveSupport `delegate` has `to` option, but it's not a option hash
anymore and now it's a keyword argument.
When `to` argument is not given, it raises an ArgumentError but
the message suggests supplying "options hash", which is now wrong.
Now it's fixed to provide correct suggestion to supply a keyword
argument.
-rw-r--r-- | activesupport/lib/active_support/core_ext/module/delegation.rb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/core_ext/module/delegation.rb b/activesupport/lib/active_support/core_ext/module/delegation.rb index 5652f2d1cc..9fe7f8fe01 100644 --- a/activesupport/lib/active_support/core_ext/module/delegation.rb +++ b/activesupport/lib/active_support/core_ext/module/delegation.rb @@ -170,7 +170,7 @@ class Module # The target method must be public, otherwise it will raise +NoMethodError+. def delegate(*methods, to: nil, prefix: nil, allow_nil: nil, private: nil) unless to - raise ArgumentError, "Delegation needs a target. Supply an options hash with a :to key as the last argument (e.g. delegate :hello, to: :greeter)." + raise ArgumentError, "Delegation needs a target. Supply a keyword argument 'to' (e.g. delegate :hello, to: :greeter)." end if prefix == true && /^[^a-z_]/.match?(to) |