Skip to content

Commit a0db7be

Browse files
committed
attr_accessor_with_default should raise an ArgumentError not a RuntimeError
1 parent a348ffc commit a0db7be

File tree

2 files changed

+3
-4
lines changed

2 files changed

+3
-4
lines changed

activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@ class Module
1818
#
1919
# attr_accessor_with_default(:element_name) { name.underscore }
2020
#
21-
def attr_accessor_with_default(sym, default = nil, &block)
22-
raise 'Default value or block required' unless !default.nil? || block
23-
define_method(sym, block_given? ? block : Proc.new { default })
21+
def attr_accessor_with_default(sym, default = Proc.new)
22+
define_method(sym, block_given? ? default : Proc.new { default })
2423
module_eval(<<-EVAL, __FILE__, __LINE__ + 1)
2524
def #{sym}=(value) # def age=(value)
2625
class << self; attr_reader :#{sym} end # class << self; attr_reader :age end

activesupport/test/core_ext/module/attr_accessor_with_default_test.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,6 @@ def test_default_proc
2626
end
2727

2828
def test_invalid_args
29-
assert_raise(RuntimeError) {@target.attr_accessor_with_default :foo}
29+
assert_raise(ArgumentError) {@target.attr_accessor_with_default :foo}
3030
end
3131
end

0 commit comments

Comments
 (0)