Removed deprecated methods and related tests from ActiveSupport

This commit is contained in:
Josh Kalderimis 2011-05-25 23:34:53 +02:00
parent 7fd0a6de84
commit 9cafc28874
15 changed files with 3 additions and 648 deletions

View File

@ -31,13 +31,8 @@ module ActiveSupport
# <% end %>
def benchmark(message = "Benchmarking", options = {})
if logger
if options.is_a?(Symbol)
ActiveSupport::Deprecation.warn("use benchmark('#{message}', :level => :#{options}) instead", caller)
options = { :level => options, :silence => false }
else
options.assert_valid_keys(:level, :silence)
options[:level] ||= :info
end
options.assert_valid_keys(:level, :silence)
options[:level] ||= :info
result = nil
ms = Benchmark.ms { result = options[:silence] ? logger.silence { yield } : yield }

View File

@ -1,13 +0,0 @@
module ActiveSupport
module Cache
class CompressedMemCacheStore < MemCacheStore
def initialize(*args)
ActiveSupport::Deprecation.warn('ActiveSupport::Cache::CompressedMemCacheStore has been deprecated in favor of ActiveSupport::Cache::MemCacheStore(:compress => true).', caller)
addresses = args.dup
options = addresses.extract_options!
args = addresses + [options.merge(:compress => true)]
super(*args)
end
end
end
end

View File

@ -77,19 +77,7 @@ module ActiveSupport
def read_entry(key, options)
file_name = key_file_path(key)
if File.exist?(file_name)
entry = File.open(file_name) { |f| Marshal.load(f) }
if entry && !entry.expired? && !entry.expires_in && !self.options[:expires_in]
# Check for deprecated use of +:expires_in+ option from versions < 3.0
deprecated_expires_in = options[:expires_in]
if deprecated_expires_in
ActiveSupport::Deprecation.warn('Setting :expires_in on read has been deprecated in favor of setting it on write.', caller)
if entry.created_at + deprecated_expires_in.to_f <= Time.now.to_f
delete_entry(key, options)
entry = nil
end
end
end
entry
File.open(file_name) { |f| Marshal.load(f) }
end
rescue
nil

View File

@ -1,11 +0,0 @@
module ActiveSupport
module Cache
# Like MemoryStore, but thread-safe.
class SynchronizedMemoryStore < MemoryStore
def initialize(*args)
ActiveSupport::Deprecation.warn('ActiveSupport::Cache::SynchronizedMemoryStore has been deprecated in favor of ActiveSupport::Cache::MemoryStore.', caller)
super
end
end
end
end

View File

@ -1,5 +1,4 @@
require 'active_support/core_ext/class/attribute'
require 'active_support/core_ext/class/attribute_accessors'
require 'active_support/core_ext/class/inheritable_attributes'
require 'active_support/core_ext/class/delegating_attributes'
require 'active_support/core_ext/class/subclasses'

View File

@ -1,178 +0,0 @@
require 'active_support/core_ext/object/duplicable'
require 'active_support/core_ext/array/extract_options'
require 'active_support/deprecation'
# Retained for backward compatibility. Methods are now included in Class.
module ClassInheritableAttributes # :nodoc:
DEPRECATION_WARNING_MESSAGE = "class_inheritable_attribute is deprecated, please use class_attribute method instead. Notice their behavior are slightly different, so refer to class_attribute documentation first"
end
# It is recommended to use <tt>class_attribute</tt> over methods defined in this file. Please
# refer to documentation for <tt>class_attribute</tt> for more information. Officially it is not
# deprecated but <tt>class_attribute</tt> is faster.
#
# Allows attributes to be shared within an inheritance hierarchy. Each descendant gets a copy of
# their parents' attributes, instead of just a pointer to the same. This means that the child can add elements
# to, for example, an array without those additions being shared with either their parent, siblings, or
# children. This is unlike the regular class-level attributes that are shared across the entire hierarchy.
#
# The copies of inheritable parent attributes are added to subclasses when they are created, via the
# +inherited+ hook.
#
# class Person
# class_inheritable_accessor :hair_colors
# end
#
# Person.hair_colors = [:brown, :black, :blonde, :red]
# Person.hair_colors # => [:brown, :black, :blonde, :red]
# Person.new.hair_colors # => [:brown, :black, :blonde, :red]
#
# To opt out of the instance writer method, pass :instance_writer => false.
# To opt out of the instance reader method, pass :instance_reader => false.
#
# class Person
# class_inheritable_accessor :hair_colors :instance_writer => false, :instance_reader => false
# end
#
# Person.new.hair_colors = [:brown] # => NoMethodError
# Person.new.hair_colors # => NoMethodError
class Class # :nodoc:
def class_inheritable_reader(*syms)
ActiveSupport::Deprecation.warn ClassInheritableAttributes::DEPRECATION_WARNING_MESSAGE
options = syms.extract_options!
syms.each do |sym|
next if sym.is_a?(Hash)
class_eval(<<-EOS, __FILE__, __LINE__ + 1)
def self.#{sym} # def self.after_add
read_inheritable_attribute(:#{sym}) # read_inheritable_attribute(:after_add)
end # end
#
#{" #
def #{sym} # def after_add
self.class.#{sym} # self.class.after_add
end # end
" unless options[:instance_reader] == false } # # the reader above is generated unless options[:instance_reader] == false
EOS
end
end
def class_inheritable_writer(*syms)
ActiveSupport::Deprecation.warn ClassInheritableAttributes::DEPRECATION_WARNING_MESSAGE
options = syms.extract_options!
syms.each do |sym|
class_eval(<<-EOS, __FILE__, __LINE__ + 1)
def self.#{sym}=(obj) # def self.color=(obj)
write_inheritable_attribute(:#{sym}, obj) # write_inheritable_attribute(:color, obj)
end # end
#
#{" #
def #{sym}=(obj) # def color=(obj)
self.class.#{sym} = obj # self.class.color = obj
end # end
" unless options[:instance_writer] == false } # # the writer above is generated unless options[:instance_writer] == false
EOS
end
end
def class_inheritable_array_writer(*syms)
ActiveSupport::Deprecation.warn ClassInheritableAttributes::DEPRECATION_WARNING_MESSAGE
options = syms.extract_options!
syms.each do |sym|
class_eval(<<-EOS, __FILE__, __LINE__ + 1)
def self.#{sym}=(obj) # def self.levels=(obj)
write_inheritable_array(:#{sym}, obj) # write_inheritable_array(:levels, obj)
end # end
#
#{" #
def #{sym}=(obj) # def levels=(obj)
self.class.#{sym} = obj # self.class.levels = obj
end # end
" unless options[:instance_writer] == false } # # the writer above is generated unless options[:instance_writer] == false
EOS
end
end
def class_inheritable_hash_writer(*syms)
ActiveSupport::Deprecation.warn ClassInheritableAttributes::DEPRECATION_WARNING_MESSAGE
options = syms.extract_options!
syms.each do |sym|
class_eval(<<-EOS, __FILE__, __LINE__ + 1)
def self.#{sym}=(obj) # def self.nicknames=(obj)
write_inheritable_hash(:#{sym}, obj) # write_inheritable_hash(:nicknames, obj)
end # end
#
#{" #
def #{sym}=(obj) # def nicknames=(obj)
self.class.#{sym} = obj # self.class.nicknames = obj
end # end
" unless options[:instance_writer] == false } # # the writer above is generated unless options[:instance_writer] == false
EOS
end
end
def class_inheritable_accessor(*syms)
class_inheritable_reader(*syms)
class_inheritable_writer(*syms)
end
def class_inheritable_array(*syms)
class_inheritable_reader(*syms)
class_inheritable_array_writer(*syms)
end
def class_inheritable_hash(*syms)
class_inheritable_reader(*syms)
class_inheritable_hash_writer(*syms)
end
def inheritable_attributes
@inheritable_attributes ||= EMPTY_INHERITABLE_ATTRIBUTES
end
def write_inheritable_attribute(key, value)
if inheritable_attributes.equal?(EMPTY_INHERITABLE_ATTRIBUTES)
@inheritable_attributes = {}
end
inheritable_attributes[key] = value
end
def write_inheritable_array(key, elements)
write_inheritable_attribute(key, []) if read_inheritable_attribute(key).nil?
write_inheritable_attribute(key, read_inheritable_attribute(key) + elements)
end
def write_inheritable_hash(key, hash)
write_inheritable_attribute(key, {}) if read_inheritable_attribute(key).nil?
write_inheritable_attribute(key, read_inheritable_attribute(key).merge(hash))
end
def read_inheritable_attribute(key)
inheritable_attributes[key]
end
def reset_inheritable_attributes
ActiveSupport::Deprecation.warn ClassInheritableAttributes::DEPRECATION_WARNING_MESSAGE
@inheritable_attributes = EMPTY_INHERITABLE_ATTRIBUTES
end
private
# Prevent this constant from being created multiple times
EMPTY_INHERITABLE_ATTRIBUTES = {}.freeze
def inherited_with_inheritable_attributes(child)
inherited_without_inheritable_attributes(child) if respond_to?(:inherited_without_inheritable_attributes)
if inheritable_attributes.equal?(EMPTY_INHERITABLE_ATTRIBUTES)
new_inheritable_attributes = EMPTY_INHERITABLE_ATTRIBUTES
else
new_inheritable_attributes = Hash[inheritable_attributes.map do |(key, value)|
[key, value.duplicable? ? value.dup : value]
end]
end
child.instance_variable_set('@inheritable_attributes', new_inheritable_attributes)
end
alias inherited_without_inheritable_attributes inherited
alias inherited inherited_with_inheritable_attributes
end

View File

@ -4,7 +4,6 @@ require 'active_support/core_ext/module/anonymous'
require 'active_support/core_ext/module/reachable'
require 'active_support/core_ext/module/attribute_accessors'
require 'active_support/core_ext/module/attr_internal'
require 'active_support/core_ext/module/attr_accessor_with_default'
require 'active_support/core_ext/module/delegation'
require 'active_support/core_ext/module/synchronization'
require 'active_support/core_ext/module/deprecation'

View File

@ -1,31 +0,0 @@
class Module
# Declare an attribute accessor with an initial default return value.
#
# To give attribute <tt>:age</tt> the initial value <tt>25</tt>:
#
# class Person
# attr_accessor_with_default :age, 25
# end
#
# person = Person.new
# person.age # => 25
#
# person.age = 26
# person.age # => 26
#
# To give attribute <tt>:element_name</tt> a dynamic default value, evaluated
# in scope of self:
#
# 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)
class << self; attr_accessor :#{sym} end # class << self; attr_accessor :age end
@#{sym} = value # @age = value
end # end
EVAL
end
end

View File

@ -5,7 +5,6 @@ require 'active_support/core_ext/module/aliasing'
require 'active_support/core_ext/module/attribute_accessors'
require 'active_support/core_ext/module/introspection'
require 'active_support/core_ext/module/anonymous'
require 'active_support/core_ext/module/deprecation'
require 'active_support/core_ext/object/blank'
require 'active_support/core_ext/load_error'
require 'active_support/core_ext/name_error'
@ -550,23 +549,6 @@ module ActiveSupport #:nodoc:
end
alias :get :[]
class Getter # :nodoc:
def initialize(name)
@name = name
end
def get
Reference.get @name
end
deprecate :get
end
def new(name)
self[name] = name
Getter.new(name)
end
deprecate :new
def store(name)
self[name] = name
self
@ -579,11 +561,6 @@ module ActiveSupport #:nodoc:
Reference = ClassCache.new
def ref(name)
Reference.new(name)
end
deprecate :ref
# Store a reference to a class +klass+.
def reference(klass)
Reference.store klass

View File

@ -1,6 +1,5 @@
require 'active_support/core_ext/object/to_json'
require 'active_support/core_ext/module/delegation'
require 'active_support/deprecation'
require 'active_support/json/variable'
require 'active_support/ordered_hash'
@ -139,8 +138,6 @@ module ActiveSupport
self.use_standard_json_time_format = true
self.escape_html_entities_in_json = false
end
CircularReferenceError = Deprecation::DeprecatedConstantProxy.new('ActiveSupport::JSON::CircularReferenceError', Encoding::CircularReferenceError)
end
end

View File

@ -26,17 +26,6 @@ class BenchmarkableTest < ActiveSupport::TestCase
assert_last_logged 'test_run'
end
def test_with_message_and_deprecated_level
i_was_run = false
assert_deprecated do
benchmark('debug_run', :debug) { i_was_run = true }
end
assert i_was_run
assert_last_logged 'debug_run'
end
def test_within_level
logger.level = ActiveSupport::BufferedLogger::DEBUG
benchmark('included_debug_run', :level => :debug) { }

View File

@ -531,26 +531,6 @@ class FileStoreTest < ActiveSupport::TestCase
include CacheDeleteMatchedBehavior
include CacheIncrementDecrementBehavior
def test_deprecated_expires_in_on_read
ActiveSupport::Deprecation.silence do
old_cache = ActiveSupport::Cache.lookup_store(:file_store, cache_dir)
time = Time.local(2008, 4, 24)
Time.stubs(:now).returns(time)
old_cache.write("foo", "bar")
assert_equal 'bar', old_cache.read('foo', :expires_in => 60)
Time.stubs(:now).returns(time + 30)
assert_equal 'bar', old_cache.read('foo', :expires_in => 60)
Time.stubs(:now).returns(time + 61)
assert_equal 'bar', old_cache.read('foo')
assert_nil old_cache.read('foo', :expires_in => 60)
assert_nil old_cache.read('foo')
end
end
def test_key_transformation
key = @cache.send(:key_file_path, "views/index?id=1")
assert_equal "views/index?id=1", @cache.send(:file_path_key, key)
@ -628,18 +608,6 @@ class MemoryStoreTest < ActiveSupport::TestCase
end
end
class SynchronizedStoreTest < ActiveSupport::TestCase
def setup
ActiveSupport::Deprecation.silence do
@cache = ActiveSupport::Cache.lookup_store(:memory_store, :expires_in => 60)
end
end
include CacheStoreBehavior
include CacheDeleteMatchedBehavior
include CacheIncrementDecrementBehavior
end
uses_memcached 'memcached backed store' do
class MemCacheStoreTest < ActiveSupport::TestCase
def setup
@ -672,18 +640,6 @@ uses_memcached 'memcached backed store' do
end
end
end
class CompressedMemCacheStore < ActiveSupport::TestCase
def setup
ActiveSupport::Deprecation.silence do
@cache = ActiveSupport::Cache.lookup_store(:compressed_mem_cache_store, :expires_in => 60)
@cache.clear
end
end
include CacheStoreBehavior
include CacheIncrementDecrementBehavior
end
end
class CacheStoreLoggerTest < ActiveSupport::TestCase

View File

@ -51,20 +51,6 @@ module ActiveSupport
assert_equal @cache[ClassCacheTest], @cache.get(ClassCacheTest.name)
end
def test_new
assert_deprecated do
@cache.new ClassCacheTest
end
assert @cache.key?(ClassCacheTest.name)
end
def test_new_rejects_strings_when_called_on_a_new_string
assert_deprecated do
@cache.new ClassCacheTest.name
end
assert !@cache.key?(ClassCacheTest.name)
end
def test_new_rejects_strings
@cache.store ClassCacheTest.name
assert !@cache.key?(ClassCacheTest.name)
@ -74,35 +60,6 @@ module ActiveSupport
x = @cache.store ClassCacheTest
assert_equal @cache, x
end
def test_new_returns_proxy
v = nil
assert_deprecated do
v = @cache.new ClassCacheTest.name
end
assert_deprecated do
assert_equal ClassCacheTest, v.get
end
end
def test_anonymous_class_fail
assert_raises(ArgumentError) do
assert_deprecated do
@cache.new Class.new
end
end
assert_raises(ArgumentError) do
x = Class.new
@cache[x] = x
end
assert_raises(ArgumentError) do
x = Class.new
@cache.store x
end
end
end
end
end

View File

@ -1,230 +0,0 @@
require 'abstract_unit'
require 'active_support/core_ext/class/inheritable_attributes'
class ClassInheritableAttributesTest < Test::Unit::TestCase
def setup
ActiveSupport::Deprecation.silenced = true
@klass = Class.new
end
def teardown
ActiveSupport::Deprecation.silenced = false
end
def test_reader_declaration
assert_nothing_raised do
@klass.class_inheritable_reader :a
assert_respond_to @klass, :a
assert_respond_to @klass.new, :a
end
end
def test_writer_declaration
assert_nothing_raised do
@klass.class_inheritable_writer :a
assert_respond_to @klass, :a=
assert_respond_to @klass.new, :a=
end
end
def test_writer_declaration_without_instance_writer
assert_nothing_raised do
@klass.class_inheritable_writer :a, :instance_writer => false
assert_respond_to @klass, :a=
assert !@klass.new.respond_to?(:a=)
end
end
def test_accessor_declaration
assert_nothing_raised do
@klass.class_inheritable_accessor :a
assert_respond_to @klass, :a
assert_respond_to @klass.new, :a
assert_respond_to @klass, :a=
assert_respond_to @klass.new, :a=
end
end
def test_accessor_declaration_without_instance_writer
assert_nothing_raised do
@klass.class_inheritable_accessor :a, :instance_writer => false
assert_respond_to @klass, :a
assert_respond_to @klass.new, :a
assert_respond_to @klass, :a=
assert !@klass.new.respond_to?(:a=)
end
end
def test_array_declaration
assert_nothing_raised do
@klass.class_inheritable_array :a
assert_respond_to @klass, :a
assert_respond_to @klass.new, :a
assert_respond_to @klass, :a=
assert_respond_to @klass.new, :a=
end
end
def test_array_declaration_without_instance_writer
assert_nothing_raised do
@klass.class_inheritable_array :a, :instance_writer => false
assert_respond_to @klass, :a
assert_respond_to @klass.new, :a
assert_respond_to @klass, :a=
assert !@klass.new.respond_to?(:a=)
end
end
def test_hash_declaration
assert_nothing_raised do
@klass.class_inheritable_hash :a
assert_respond_to @klass, :a
assert_respond_to @klass.new, :a
assert_respond_to @klass, :a=
assert_respond_to @klass.new, :a=
end
end
def test_hash_declaration_without_instance_writer
assert_nothing_raised do
@klass.class_inheritable_hash :a, :instance_writer => false
assert_respond_to @klass, :a
assert_respond_to @klass.new, :a
assert_respond_to @klass, :a=
assert !@klass.new.respond_to?(:a=)
end
end
def test_reader
@klass.class_inheritable_reader :a
assert_nil @klass.a
assert_nil @klass.new.a
@klass.send(:write_inheritable_attribute, :a, 'a')
assert_equal 'a', @klass.a
assert_equal 'a', @klass.new.a
assert_equal @klass.a, @klass.new.a
assert_equal @klass.a.object_id, @klass.new.a.object_id
end
def test_writer
@klass.class_inheritable_reader :a
@klass.class_inheritable_writer :a
assert_nil @klass.a
assert_nil @klass.new.a
@klass.a = 'a'
assert_equal 'a', @klass.a
@klass.new.a = 'A'
assert_equal 'A', @klass.a
end
def test_array
@klass.class_inheritable_array :a
assert_nil @klass.a
assert_nil @klass.new.a
@klass.a = %w(a b c)
assert_equal %w(a b c), @klass.a
assert_equal %w(a b c), @klass.new.a
@klass.new.a = %w(A B C)
assert_equal %w(a b c A B C), @klass.a
assert_equal %w(a b c A B C), @klass.new.a
end
def test_hash
@klass.class_inheritable_hash :a
assert_nil @klass.a
assert_nil @klass.new.a
@klass.a = { :a => 'a' }
assert_equal({ :a => 'a' }, @klass.a)
assert_equal({ :a => 'a' }, @klass.new.a)
@klass.new.a = { :b => 'b' }
assert_equal({ :a => 'a', :b => 'b' }, @klass.a)
assert_equal({ :a => 'a', :b => 'b' }, @klass.new.a)
end
def test_inheritance
@klass.class_inheritable_accessor :a
@klass.a = 'a'
@sub = eval("class FlogMe < @klass; end; FlogMe")
@klass.class_inheritable_accessor :b
assert_respond_to @sub, :a
assert_respond_to @sub, :b
assert_equal @klass.a, @sub.a
assert_equal @klass.b, @sub.b
assert_equal 'a', @sub.a
assert_nil @sub.b
@klass.b = 'b'
assert_not_equal @klass.b, @sub.b
assert_equal 'b', @klass.b
assert_nil @sub.b
@sub.a = 'A'
assert_not_equal @klass.a, @sub.a
assert_equal 'a', @klass.a
assert_equal 'A', @sub.a
@sub.b = 'B'
assert_not_equal @klass.b, @sub.b
assert_equal 'b', @klass.b
assert_equal 'B', @sub.b
end
def test_array_inheritance
@klass.class_inheritable_accessor :a
@klass.a = []
@sub = eval("class SubbyArray < @klass; end; SubbyArray")
assert_equal [], @klass.a
assert_equal [], @sub.a
@sub.a << :first
assert_equal [:first], @sub.a
assert_equal [], @klass.a
end
def test_array_inheritance_
@klass.class_inheritable_accessor :a
@klass.a = {}
@sub = eval("class SubbyHash < @klass; end; SubbyHash")
assert_equal Hash.new, @klass.a
assert_equal Hash.new, @sub.a
@sub.a[:first] = :first
assert_equal 1, @sub.a.keys.size
assert_equal 0, @klass.a.keys.size
end
def test_reset_inheritable_attributes
@klass.class_inheritable_accessor :a
@klass.a = 'a'
@sub = eval("class Inheriting < @klass; end; Inheriting")
assert_equal 'a', @klass.a
assert_equal 'a', @sub.a
@klass.reset_inheritable_attributes
@sub = eval("class NotInheriting < @klass; end; NotInheriting")
assert_nil @klass.a
assert_nil @sub.a
end
end

View File

@ -1,39 +0,0 @@
require 'abstract_unit'
require 'active_support/core_ext/module/attr_accessor_with_default'
class AttrAccessorWithDefaultTest < ActiveSupport::TestCase
def setup
@target = Class.new do
def helper
'helper'
end
end
@instance = @target.new
end
def test_default_arg
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
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) do
assert_deprecated do
@target.attr_accessor_with_default :foo
end
end
end
end