class JsonApiClient::Associations::BaseAssociation

Attributes

attr_name[R]
klass[R]
options[R]

Public Class Methods

new(attr_name, klass, options = {}) click to toggle source
# File lib/json_api_client/associations/base_association.rb, line 5
def initialize(attr_name, klass, options = {})
  @attr_name = attr_name
  @klass = klass
  @options = options
end

Public Instance Methods

association_class() click to toggle source
# File lib/json_api_client/associations/base_association.rb, line 11
def association_class
  @association_class ||= Utils.compute_type(klass, options.fetch(:class_name) do
    attr_name.to_s.classify
  end)
end
data(url) click to toggle source
# File lib/json_api_client/associations/base_association.rb, line 17
def data(url)
  from_result_set(association_class.requestor.linked(url))
end
from_result_set(result_set) click to toggle source
# File lib/json_api_client/associations/base_association.rb, line 21
def from_result_set(result_set)
  result_set.to_a
end
load_records(data) click to toggle source
# File lib/json_api_client/associations/base_association.rb, line 25
def load_records(data)
  data.map do |d|
    record_class = Utils.compute_type(klass, klass.key_formatter.unformat(d["type"]).classify)
    record_class.load id: d["id"]
  end
end