diff options
Diffstat (limited to 'activesupport')
5 files changed, 13 insertions, 15 deletions
diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md index 70d671cd2d..2656d3f113 100644 --- a/activesupport/CHANGELOG.md +++ b/activesupport/CHANGELOG.md @@ -1,3 +1,8 @@ +## Rails 5.0.0.beta1 (December 18, 2015) ## + +* No changes. + + * Add thread_m/cattr_accessor/reader/writer suite of methods for declaring class and module variables that live per-thread. This makes it easy to declare per-thread globals that are encapsulated. Note: This is a sharp edge. A wild proliferation of globals is A Bad Thing. But like other sharp tools, when it's right, it's right. diff --git a/activesupport/lib/active_support/core_ext/module/attribute_accessors_per_thread.rb b/activesupport/lib/active_support/core_ext/module/attribute_accessors_per_thread.rb index e02e965d75..8a7e6776da 100644 --- a/activesupport/lib/active_support/core_ext/module/attribute_accessors_per_thread.rb +++ b/activesupport/lib/active_support/core_ext/module/attribute_accessors_per_thread.rb @@ -15,7 +15,7 @@ class Module # end # # Current.user # => nil - # Thread.current.thread_variable_set("attr_Current_user", "DHH") + # Thread.current[:attr_Current_user] = "DHH" # Current.user # => "DHH" # # The attribute name must be a valid method name in Ruby. @@ -40,14 +40,14 @@ class Module raise NameError.new("invalid attribute name: #{sym}") unless sym =~ /^[_A-Za-z]\w*$/ class_eval(<<-EOS, __FILE__, __LINE__ + 1) def self.#{sym} - Thread.current.thread_variable_get "attr_#{name}_#{sym}" + Thread.current[:"attr_#{name}_#{sym}"] end EOS unless options[:instance_reader] == false || options[:instance_accessor] == false class_eval(<<-EOS, __FILE__, __LINE__ + 1) def #{sym} - Thread.current.thread_variable_get "attr_#{self.class.name}_#{sym}" + Thread.current[:"attr_#{self.class.name}_#{sym}"] end EOS end @@ -63,7 +63,7 @@ class Module # end # # Current.user = "DHH" - # Thread.current.thread_variable_get("attr_Current_user") # => "DHH" + # Thread.current[:attr_Current_user] # => "DHH" # # If you want to opt out the instance writer method, pass # <tt>instance_writer: false</tt> or <tt>instance_accessor: false</tt>. @@ -79,14 +79,14 @@ class Module raise NameError.new("invalid attribute name: #{sym}") unless sym =~ /^[_A-Za-z]\w*$/ class_eval(<<-EOS, __FILE__, __LINE__ + 1) def self.#{sym}=(obj) - Thread.current.thread_variable_set "attr_#{name}_#{sym}", obj + Thread.current[:"attr_#{name}_#{sym}"] = obj end EOS unless options[:instance_writer] == false || options[:instance_accessor] == false class_eval(<<-EOS, __FILE__, __LINE__ + 1) def #{sym}=(obj) - Thread.current.thread_variable_set "attr_#{self.class.name}_#{sym}", obj + Thread.current[:"attr_#{self.class.name}_#{sym}"] = obj end EOS end diff --git a/activesupport/lib/active_support/gem_version.rb b/activesupport/lib/active_support/gem_version.rb index ece68bbcb6..7790a9b2c0 100644 --- a/activesupport/lib/active_support/gem_version.rb +++ b/activesupport/lib/active_support/gem_version.rb @@ -8,7 +8,7 @@ module ActiveSupport MAJOR = 5 MINOR = 0 TINY = 0 - PRE = "alpha" + PRE = "beta1" STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".") end diff --git a/activesupport/test/caching_test.rb b/activesupport/test/caching_test.rb index a1bd2d5356..7bef73136c 100644 --- a/activesupport/test/caching_test.rb +++ b/activesupport/test/caching_test.rb @@ -655,14 +655,6 @@ module LocalCacheBehavior end end - def test_local_cache_of_read_nil - @cache.with_local_cache do - assert_equal nil, @cache.read('foo') - @cache.send(:bypass_local_cache) { @cache.write 'foo', 'bar' } - assert_equal nil, @cache.read('foo') - end - end - def test_local_cache_of_delete @cache.with_local_cache do @cache.write('foo', 'bar') diff --git a/activesupport/test/file_update_checker_shared_tests.rb b/activesupport/test/file_update_checker_shared_tests.rb index 100cbc9756..9c07e38fe5 100644 --- a/activesupport/test/file_update_checker_shared_tests.rb +++ b/activesupport/test/file_update_checker_shared_tests.rb @@ -21,6 +21,7 @@ module FileUpdateCheckerSharedTests end test 'should not execute the block if no paths are given' do + silence_warnings { require 'listen' } i = 0 checker = new_checker { i += 1 } |