@@ -33,7 +33,7 @@ class JsonApi < Base
3333
3434 def initialize ( serializer , options = { } )
3535 super
36- @include_tree = ActiveModel :: Serializer :: IncludeTree . from_include_args ( options [ :include ] )
36+ @include_directive = JSONAPI :: IncludeDirective . new ( options [ :include ] , allow_wildcard : true )
3737 @fieldset = options [ :fieldset ] || ActiveModel ::Serializer ::Fieldset . new ( options . delete ( :fields ) )
3838 end
3939
@@ -232,7 +232,7 @@ def resource_objects_for(serializers)
232232 @included = [ ]
233233 @resource_identifiers = Set . new
234234 serializers . each { |serializer | process_resource ( serializer , true ) }
235- serializers . each { |serializer | process_relationships ( serializer , @include_tree ) }
235+ serializers . each { |serializer | process_relationships ( serializer , @include_directive ) }
236236
237237 [ @primary , @included ]
238238 end
@@ -251,21 +251,21 @@ def process_resource(serializer, primary)
251251 true
252252 end
253253
254- def process_relationships ( serializer , include_tree )
255- serializer . associations ( include_tree ) . each do |association |
256- process_relationship ( association . serializer , include_tree [ association . key ] )
254+ def process_relationships ( serializer , include_directive )
255+ serializer . associations ( include_directive ) . each do |association |
256+ process_relationship ( association . serializer , include_directive [ association . key ] )
257257 end
258258 end
259259
260- def process_relationship ( serializer , include_tree )
260+ def process_relationship ( serializer , include_directive )
261261 if serializer . respond_to? ( :each )
262- serializer . each { |s | process_relationship ( s , include_tree ) }
262+ serializer . each { |s | process_relationship ( s , include_directive ) }
263263 return
264264 end
265265 return unless serializer && serializer . object
266266 return unless process_resource ( serializer , false )
267267
268- process_relationships ( serializer , include_tree )
268+ process_relationships ( serializer , include_directive )
269269 end
270270
271271 # {http://jsonapi.org/format/#document-resource-object-attributes Document Resource Object Attributes}
@@ -429,8 +429,10 @@ def resource_object_for(serializer)
429429 # meta: meta
430430 # }.reject! {|_,v| v.nil? }
431431 def relationships_for ( serializer , requested_associations )
432- include_tree = ActiveModel ::Serializer ::IncludeTree . from_include_args ( requested_associations )
433- serializer . associations ( include_tree ) . each_with_object ( { } ) do |association , hash |
432+ include_directive = JSONAPI ::IncludeDirective . new (
433+ requested_associations ,
434+ allow_wildcard : true )
435+ serializer . associations ( include_directive ) . each_with_object ( { } ) do |association , hash |
434436 hash [ association . key ] = Relationship . new (
435437 serializer ,
436438 association . serializer ,
0 commit comments