Initialize fieldset.

This commit is contained in:
Lucas Hosseini 2015-10-25 19:56:43 +01:00
parent 13ef8fed1b
commit b5aecfd114
2 changed files with 4 additions and 10 deletions

View File

@ -44,13 +44,7 @@ module ActiveModel
def initialize(serializer, options = {})
super
@include_tree = IncludeTree.from_include_args(options[:include])
fields = options.delete(:fields)
if fields
@fieldset = ActiveModel::Serializer::Fieldset.new(fields)
else
@fieldset = options[:fieldset]
end
@fieldset = options[:fieldset] || ActiveModel::Serializer::Fieldset.new(options.delete(:fields))
end
def serializable_hash(options = nil)
@ -175,7 +169,7 @@ module ActiveModel
def relationships_for(serializer)
resource_type = resource_identifier_type_for(serializer)
requested_associations = fieldset.try(:fields_for, resource_type) || '*'
requested_associations = fieldset.fields_for(resource_type) || '*'
include_tree = IncludeTree.from_include_args(requested_associations)
serializer.associations(include_tree).each_with_object({}) do |association, hash|
hash[association.key] = { data: relationship_value_for(association.serializer, association.options) }

View File

@ -2,7 +2,7 @@ module ActiveModel
class Serializer
class Fieldset
def initialize(fields)
@raw_fields = fields
@raw_fields = fields || {}
end
def fields
@ -21,7 +21,7 @@ module ActiveModel
def parsed_fields
if raw_fields.is_a?(Hash)
raw_fields.inject({}) { |h, (k, v)| h[k.to_sym] = v.map(&:to_sym); h }
raw_fields.each_with_object({}) { |(k, v), h| h[k.to_sym] = v.map(&:to_sym) }
else
{}
end