class ShafClient::AlpsJson

Attributes

descriptors[R]

Public Class Methods

new(_client, payload, status = nil, headers = {}) click to toggle source
Calls superclass method
# File lib/shaf_client/alps_json.rb, line 9
def initialize(_client, payload, status = nil, headers = {})
  super

  @links = {}.freeze
  @curies = {}.freeze
  @embedded_resources = {}.freeze
end

Public Instance Methods

descriptor(id) click to toggle source
# File lib/shaf_client/alps_json.rb, line 23
def descriptor(id)
  descriptors.find { |desc| desc.id == id.to_sym }
end
each_descriptor(&block) click to toggle source
# File lib/shaf_client/alps_json.rb, line 27
def each_descriptor(&block)
  descriptors.each(&block)
end
to_h() click to toggle source
# File lib/shaf_client/alps_json.rb, line 17
def to_h
  attributes.merge(
    descriptors: descriptors.map(&:to_h)
  )
end

Private Instance Methods

parse() click to toggle source
# File lib/shaf_client/alps_json.rb, line 33
def parse
  alps = payload&.dig('alps') || {}
  @attributes = {
    version: alps['version'],
    doc: alps['doc'],
  }
  @descriptors = alps.fetch('descriptor', []).map do |desc|
    Alps::Descriptor.new(**desc.transform_keys(&:to_sym))
  end
end