diff options
author | Michael Ryan <perceptec@gmail.com> | 2016-03-10 12:13:45 -0500 |
---|---|---|
committer | Michael Ryan <perceptec@gmail.com> | 2016-03-11 06:54:00 -0500 |
commit | 4f2c25d39d264aca09a000a1c44be0f1937203fa (patch) | |
tree | 245bd606b0cd26b573acbea5fe23e74167b3f911 /activesupport/test | |
parent | a101115d5b8011278891f30f69901f9583ea7685 (diff) | |
download | rails-4f2c25d39d264aca09a000a1c44be0f1937203fa.tar.gz rails-4f2c25d39d264aca09a000a1c44be0f1937203fa.tar.bz2 rails-4f2c25d39d264aca09a000a1c44be0f1937203fa.zip |
Fix `thread_mattr_accessor` thread-local variable naming
The current implentation of `thread_mattr_accessor` is setting
differently-named thread variables when defining class and
instance writer methods, so the method isn't working as documented:
Account.user = "DHH"
Account.user # => "DHH"
Account.new.user # => nil
a = Account.new
a.user = "ABC" # => "ABC"
a.class.user # => "DHH"
At this point `:attr_Account_user` and `:attr_Class_user` thread-local
variables have been created. Modify the reader and writer methods to use
the class name instead of 'Class'.
Diffstat (limited to 'activesupport/test')
-rw-r--r-- | activesupport/test/core_ext/module/attribute_accessor_per_thread_test.rb | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/activesupport/test/core_ext/module/attribute_accessor_per_thread_test.rb b/activesupport/test/core_ext/module/attribute_accessor_per_thread_test.rb index 65fadc5c20..a9fd878b80 100644 --- a/activesupport/test/core_ext/module/attribute_accessor_per_thread_test.rb +++ b/activesupport/test/core_ext/module/attribute_accessor_per_thread_test.rb @@ -106,4 +106,10 @@ class ModuleAttributeAccessorPerThreadTest < ActiveSupport::TestCase end assert_equal "invalid attribute name: 2valid_part", exception.message end + + def test_should_return_same_value_by_class_or_instance_accessor + @class.foo = 'fries' + + assert_equal @class.foo, @object.foo + end end |