From 0e953c94b152abf0de1c04dba74c22f935bc85c7 Mon Sep 17 00:00:00 2001 From: Alexey Chernenkov Date: Wed, 5 Jun 2013 13:05:53 +0600 Subject: Unify `cattr_*` interface: allow to pass a block to `cattr_reader`. Example: class A cattr_reader(:defr) { 'default_reader_value' } end A.defr # => 'default_reader_value' --- activesupport/test/core_ext/class/attribute_accessor_test.rb | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'activesupport/test/core_ext/class') diff --git a/activesupport/test/core_ext/class/attribute_accessor_test.rb b/activesupport/test/core_ext/class/attribute_accessor_test.rb index 0d5f39a72b..3bc948f3a6 100644 --- a/activesupport/test/core_ext/class/attribute_accessor_test.rb +++ b/activesupport/test/core_ext/class/attribute_accessor_test.rb @@ -8,6 +8,9 @@ class ClassAttributeAccessorTest < ActiveSupport::TestCase cattr_accessor :bar, :instance_writer => false cattr_reader :shaq, :instance_reader => false cattr_accessor :camp, :instance_accessor => false + cattr_accessor(:defa) { 'default_accessor_value' } + cattr_reader(:defr) { 'default_reader_value' } + cattr_writer(:defw) { 'default_writer_value' } end @object = @class.new end @@ -58,4 +61,10 @@ class ClassAttributeAccessorTest < ActiveSupport::TestCase end assert_equal "invalid class attribute name: 1nvalid", exception.message end + + def test_should_use_default_value_if_block_passed + assert_equal 'default_accessor_value', @class.defa + assert_equal 'default_reader_value', @class.defr + assert_equal 'default_writer_value', @class.class_variable_get('@@defw') + end end -- cgit v1.2.3