Add a deprecation DSL

This commit is contained in:
Benjamin Fleischer
2016-03-07 01:03:04 -06:00
parent 6b4c8df6fb
commit b50195fde7
10 changed files with 91 additions and 31 deletions

View File

@@ -3,40 +3,37 @@ module ActiveModel
# @deprecated Use ActiveModelSerializers::Adapter instead
module Adapter
class << self
extend ActiveModelSerializers::Deprecate
def create(resource, options = {})
warn_deprecation
ActiveModelSerializers::Adapter.create(resource, options)
end
deprecate :create, 'ActiveModelSerializers::Adapter.'
def adapter_class(adapter)
warn_deprecation
ActiveModelSerializers::Adapter.adapter_class(adapter)
end
deprecate :adapter_class, 'ActiveModelSerializers::Adapter.'
def adapter_map
warn_deprecation
ActiveModelSerializers::Adapter.adapter_map
end
deprecate :adapter_map, 'ActiveModelSerializers::Adapter.'
def adapters
warn_deprecation
ActiveModelSerializers::Adapter.adapters
end
deprecate :adapters, 'ActiveModelSerializers::Adapter.'
def register(name, klass = name)
warn_deprecation
ActiveModelSerializers::Adapter.register(name, klass)
end
deprecate :register, 'ActiveModelSerializers::Adapter.'
def lookup(adapter)
warn_deprecation
ActiveModelSerializers::Adapter.lookup(adapter)
end
def warn_deprecation
warn "Calling deprecated #{name} (#{__FILE__}) from #{caller[1..3].join(', ')}. Please use ActiveModelSerializers::Adapter"
end
private :warn_deprecation
deprecate :lookup, 'ActiveModelSerializers::Adapter.'
end
require 'active_model/serializer/adapter/base'

View File

@@ -1,13 +1,14 @@
require 'active_model_serializers/adapter/attributes'
module ActiveModel
class Serializer
module Adapter
class Attributes < DelegateClass(ActiveModelSerializers::Adapter::Attributes)
def initialize(serializer, options = {})
warn "Calling deprecated #{self.class.name} (#{__FILE__}) from #{caller[0..2].join(', ')}. Please use #{self.class.name.sub('ActiveModel::Serializer', 'ActiveModelSerializers')}"
super(ActiveModelSerializers::Adapter::Attributes.new(serializer, options))
end
class << self
extend ActiveModelSerializers::Deprecate
deprecate :new, 'ActiveModelSerializers::Adapter::Json.'
end
end
end
end

View File

@@ -2,9 +2,9 @@ module ActiveModel
class Serializer
module Adapter
class Base < DelegateClass(ActiveModelSerializers::Adapter::Base)
def self.inherited(base)
warn "Inheriting deprecated ActiveModel::Serializer::Adapter::Base in #{caller[0..2].join(', ')}. Please use ActiveModelSerializers::Adapter::Base"
super
class << self
extend ActiveModelSerializers::Deprecate
deprecate :inherited, 'ActiveModelSerializers::Adapter::Base.'
end
def initialize(serializer, options = {})

View File

@@ -1,13 +1,14 @@
require 'active_model_serializers/adapter/json'
module ActiveModel
class Serializer
module Adapter
class Json < DelegateClass(ActiveModelSerializers::Adapter::Json)
def initialize(serializer, options = {})
warn "Calling deprecated #{self.class.name} (#{__FILE__}) from #{caller[0..2].join(', ')}. Please use #{self.class.name.sub('ActiveModel::Serializer', 'ActiveModelSerializers')}"
super(ActiveModelSerializers::Adapter::Json.new(serializer, options))
end
class << self
extend ActiveModelSerializers::Deprecate
deprecate :new, 'ActiveModelSerializers::Adapter::Json.new'
end
end
end
end

View File

@@ -1,13 +1,14 @@
require 'active_model_serializers/adapter/json_api'
module ActiveModel
class Serializer
module Adapter
class JsonApi < DelegateClass(ActiveModelSerializers::Adapter::JsonApi)
def initialize(serializer, options = {})
warn "Calling deprecated #{self.class.name} (#{__FILE__}) from #{caller[0..2].join(', ')}. Please use #{self.class.name.sub('ActiveModel::Serializer', 'ActiveModelSerializers')}"
super(ActiveModelSerializers::Adapter::JsonApi.new(serializer, options))
end
class << self
extend ActiveModelSerializers::Deprecate
deprecate :new, 'ActiveModelSerializers::Adapter::JsonApi.new'
end
end
end
end

View File

@@ -1,13 +1,14 @@
require 'active_model_serializers/adapter/null'
module ActiveModel
class Serializer
module Adapter
class Null < DelegateClass(ActiveModelSerializers::Adapter::Null)
def initialize(serializer, options = {})
warn "Calling deprecated #{self.class.name} (#{__FILE__}) from #{caller[0..2].join(', ')}. Please use #{self.class.name.sub('ActiveModel::Serializer', 'ActiveModelSerializers')}"
super(ActiveModelSerializers::Adapter::Null.new(serializer, options))
end
class << self
extend ActiveModelSerializers::Deprecate
deprecate :new, 'ActiveModelSerializers::Adapter::Null.new'
end
end
end
end

View File

@@ -1,9 +1,9 @@
require 'active_model/serializer/collection_serializer'
class ActiveModel::Serializer
class ArraySerializer < CollectionSerializer
def initialize(*)
warn "Calling deprecated ArraySerializer in #{caller[0..2].join(', ')}. Please use CollectionSerializer"
super
class << self
extend ActiveModelSerializers::Deprecate
deprecate :new, 'ActiveModel::CollectionSerializer.'
end
end
end