Move meta/meta_key handling inside adapter.

This commit is contained in:
Lucas Hosseini
2015-10-05 06:35:38 +02:00
parent 3fe343f240
commit 503bfe9598
7 changed files with 43 additions and 45 deletions

View File

@@ -1,7 +1,7 @@
require 'set'
module ActiveModel
class SerializableResource
ADAPTER_OPTION_KEYS = Set.new([:include, :fields, :adapter])
ADAPTER_OPTION_KEYS = Set.new([:include, :fields, :adapter, :meta, :meta_key])
# Primary interface to composing a resource with a serializer and adapter.
# @return the serializable_resource, ready for #as_json/#to_json/#serializable_hash.

View File

@@ -121,15 +121,13 @@ module ActiveModel
end
end
attr_accessor :object, :root, :meta, :meta_key, :scope
attr_accessor :object, :root, :scope
class_attribute :_type, instance_writer: false
def initialize(object, options = {})
self.object = object
self.instance_options = options
self.root = instance_options[:root]
self.meta = instance_options[:meta]
self.meta_key = instance_options[:meta_key]
self.scope = instance_options[:scope]
scope_name = instance_options[:scope_name]

View File

@@ -37,11 +37,11 @@ module ActiveModel
private
def meta
serializer.meta if serializer.respond_to?(:meta)
instance_options.fetch(:meta, nil)
end
def meta_key
serializer.meta_key || 'meta'.freeze
instance_options.fetch(:meta_key, 'meta'.freeze)
end
def root

View File

@@ -5,7 +5,7 @@ module ActiveModel
include Enumerable
delegate :each, to: :@serializers
attr_reader :object, :root, :meta, :meta_key
attr_reader :object, :root
def initialize(resources, options = {})
@root = options[:root]
@@ -21,8 +21,6 @@ module ActiveModel
serializer_class.new(resource, options.except(:serializer))
end
end
@meta = options[:meta]
@meta_key = options[:meta_key]
end
def json_key