From 673372152032a886ba9196c69348386834590eab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Mon, 16 May 2011 11:19:11 -0400 Subject: [PATCH] Deprecate attr_accessor_with_default. --- .../module/attr_accessor_with_default.rb | 1 + .../module/attr_accessor_with_default_test.rb | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb b/activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb index e3259a0a84..984f6fb957 100644 --- a/activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb +++ b/activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb @@ -19,6 +19,7 @@ class Module # attr_accessor_with_default(:element_name) { name.underscore } # def attr_accessor_with_default(sym, default = Proc.new) + ActiveSupport::Deprecation.warn "attr_accessor_with_default is deprecated. Use Ruby instead!" define_method(sym, block_given? ? default : Proc.new { default }) module_eval(<<-EVAL, __FILE__, __LINE__ + 1) def #{sym}=(value) # def age=(value) diff --git a/activesupport/test/core_ext/module/attr_accessor_with_default_test.rb b/activesupport/test/core_ext/module/attr_accessor_with_default_test.rb index b9b60c4d6d..0ecd16b051 100644 --- a/activesupport/test/core_ext/module/attr_accessor_with_default_test.rb +++ b/activesupport/test/core_ext/module/attr_accessor_with_default_test.rb @@ -1,7 +1,7 @@ require 'abstract_unit' require 'active_support/core_ext/module/attr_accessor_with_default' -class AttrAccessorWithDefaultTest < Test::Unit::TestCase +class AttrAccessorWithDefaultTest < ActiveSupport::TestCase def setup @target = Class.new do def helper @@ -12,20 +12,28 @@ class AttrAccessorWithDefaultTest < Test::Unit::TestCase end def test_default_arg - @target.attr_accessor_with_default :foo, :bar + assert_deprecated do + @target.attr_accessor_with_default :foo, :bar + end assert_equal(:bar, @instance.foo) @instance.foo = nil assert_nil(@instance.foo) end def test_default_proc - @target.attr_accessor_with_default(:foo) {helper.upcase} + assert_deprecated do + @target.attr_accessor_with_default(:foo) {helper.upcase} + end assert_equal('HELPER', @instance.foo) @instance.foo = nil assert_nil(@instance.foo) end def test_invalid_args - assert_raise(ArgumentError) {@target.attr_accessor_with_default :foo} + assert_raise(ArgumentError) do + assert_deprecated do + @target.attr_accessor_with_default :foo + end + end end end