Sha256: 6f908550bda79471ee1ac85dad7bd67edd8eaae57df2b3ebcff29ac6fdf5401e
Contents?: true
Size: 1.42 KB
Versions: 1
Compression:
Stored size: 1.42 KB
Contents
# frozen_string_literal: true module JSONAPI # A ResourceFragment holds a ResourceIdentity and associated partial resource data. # # The following partial resource data may be stored # cache - the value of the cache field for the resource instance # related - a hash of arrays of related resource identities, grouped by relationship name # related_from - a set of related resource identities that loaded the fragment # resource - a resource instance # class ResourceFragment attr_reader :identity, :related_from, :related, :resource attr_accessor :primary, :cache alias :cache_field :cache #ToDo: Rename one or the other def initialize(identity, resource: nil, cache: nil, primary: false) @identity = identity @cache = cache @resource = resource @primary = primary @related = {} @related_from = SortedSet.new end def initialize_related(relationship_name) @related[relationship_name.to_sym] ||= Set.new end def add_related_identity(relationship_name, identity) initialize_related(relationship_name) @related[relationship_name.to_sym] << identity if identity end def merge_related_identities(relationship_name, identities) initialize_related(relationship_name) @related[relationship_name.to_sym].merge(identities) if identities end def add_related_from(identity) @related_from << identity end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
jsonapi-resources-0.11.0.beta2 | lib/jsonapi/resource_fragment.rb |