class Subjoin::Relationship

A related resource link, providing access to resource objects linked in a relationship @see jsonapi.org/format/#document-resource-object-related-resource-links

Attributes

linkages[R]

Public Class Methods

new(data, doc) click to toggle source
# File lib/subjoin/relationship.rb, line 10
def initialize(data, doc)
  @document = doc
  @links = load_links(data['links'])
  @linkages = load_linkages(data['data'], doc)
  @meta = load_meta(data['meta'])
end

Public Instance Methods

lookup() click to toggle source

Resolve available linkages and return related resources @return [Array<Subjoin::Resource>]

# File lib/subjoin/relationship.rb, line 19
def lookup
  return [] unless @document.has_included?
  @linkages.map{|l| @document.included[l]}
end

Private Instance Methods

load_linkages(data, doc) click to toggle source
# File lib/subjoin/relationship.rb, line 25
def load_linkages(data, doc)
  return [] if data.nil?
  return [Identifier.new(data['type'], data['id'], data['meta'])] if data.is_a? Hash
  data.map{|l| Identifier.new(l['type'], l['id'], l['meta'])}
end