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