class Teamtailor::Relationship
Attributes
included[R]
relation_name[R]
relationships[R]
Public Class Methods
new(relation_name, relationships = {}, included = {})
click to toggle source
# File lib/teamtailor/relationship.rb, line 5 def initialize(relation_name, relationships = {}, included = {}) @relation_name = relation_name @relationships = relationships @included = included end
Public Instance Methods
loaded?()
click to toggle source
# File lib/teamtailor/relationship.rb, line 11 def loaded? !record_ids.empty? end
records()
click to toggle source
# File lib/teamtailor/relationship.rb, line 15 def records raise Teamtailor::UnloadedRelationError unless loaded? record_json = included.select do |k| record_ids.include?(k["id"]) && k["type"] == record_type end Teamtailor::Parser.parse({ "data" => record_json, "included" => included }) end
Private Instance Methods
record_ids()
click to toggle source
# File lib/teamtailor/relationship.rb, line 27 def record_ids data = [relationships&.dig(relation_name, "data")].flatten.compact data.map { |row| row["id"] } end
record_type()
click to toggle source
# File lib/teamtailor/relationship.rb, line 32 def record_type data = [relationships&.dig(relation_name, "data")].flatten data.map { |row| row["type"] }.first end