Move Adapter.adapter_for to Serializer.adapter

This commit is contained in:
Tema Bolshakov
2014-08-27 11:02:39 +04:00
parent a6f9dae560
commit b1f7a5ccda
5 changed files with 69 additions and 68 deletions

View File

@@ -12,7 +12,7 @@ module ActionController
if serializer
# omg hax
object = serializer.new(resource)
adapter = ActiveModel::Serializer::Adapter.adapter_for(object)
adapter = ActiveModel::Serializer.adapter.new(object)
super(adapter, options)
else

View File

@@ -74,6 +74,24 @@ module ActiveModel
end
end
def self.adapter
adapter_class = case config.adapter
when Symbol
class_name = "ActiveModel::Serializer::Adapter::#{config.adapter.to_s.classify}Adapter"
if Object.const_defined?(class_name)
Object.const_get(class_name)
end
when Class
config.adapter
end
unless adapter_class
valid_adapters = Adapter.constants.map { |klass| ":#{klass.to_s.sub('Adapter', '').downcase}" }
raise ArgumentError, "Unknown adapter: #{config.adapter}. Valid adapters are: #{valid_adapters}"
end
adapter_class
end
attr_accessor :object
def initialize(object)

View File

@@ -18,24 +18,6 @@ module ActiveModel
def to_json(options={})
serializable_hash(options).to_json
end
def self.adapter_for(serializer)
adapter_class = case serializer.config.adapter
when Symbol
class_name = "ActiveModel::Serializer::Adapter::#{serializer.config.adapter.to_s.classify}Adapter"
if Object.const_defined?(class_name)
Object.const_get(class_name)
end
when Class
serializer.config.adapter
end
unless adapter_class
valid_adapters = self.constants.map { |klass| ":#{klass.to_s.sub('Adapter', '').downcase}" }
raise ArgumentError, "Unknown adapter: #{serializer.config.adapter}. Valid adapters are: #{valid_adapters}"
end
adapter_class.new(serializer)
end
end
end
end