Skip to content

Commit b5aecfd

Browse files
committed
Initialize fieldset.
1 parent 13ef8fe commit b5aecfd

File tree

2 files changed

+4
-10
lines changed

2 files changed

+4
-10
lines changed

lib/active_model/serializer/adapter/json_api.rb

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,7 @@ def object
4444
def initialize(serializer, options = {})
4545
super
4646
@include_tree = IncludeTree.from_include_args(options[:include])
47-
48-
fields = options.delete(:fields)
49-
if fields
50-
@fieldset = ActiveModel::Serializer::Fieldset.new(fields)
51-
else
52-
@fieldset = options[:fieldset]
53-
end
47+
@fieldset = options[:fieldset] || ActiveModel::Serializer::Fieldset.new(options.delete(:fields))
5448
end
5549

5650
def serializable_hash(options = nil)
@@ -175,7 +169,7 @@ def relationship_value_for(serializer, options = {})
175169

176170
def relationships_for(serializer)
177171
resource_type = resource_identifier_type_for(serializer)
178-
requested_associations = fieldset.try(:fields_for, resource_type) || '*'
172+
requested_associations = fieldset.fields_for(resource_type) || '*'
179173
include_tree = IncludeTree.from_include_args(requested_associations)
180174
serializer.associations(include_tree).each_with_object({}) do |association, hash|
181175
hash[association.key] = { data: relationship_value_for(association.serializer, association.options) }

lib/active_model/serializer/fieldset.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ module ActiveModel
22
class Serializer
33
class Fieldset
44
def initialize(fields)
5-
@raw_fields = fields
5+
@raw_fields = fields || {}
66
end
77

88
def fields
@@ -21,7 +21,7 @@ def fields_for(type)
2121

2222
def parsed_fields
2323
if raw_fields.is_a?(Hash)
24-
raw_fields.inject({}) { |h, (k, v)| h[k.to_sym] = v.map(&:to_sym); h }
24+
raw_fields.each_with_object({}) { |(k, v), h| h[k.to_sym] = v.map(&:to_sym) }
2525
else
2626
{}
2727
end

0 commit comments

Comments
 (0)