class ResoTransport::BaseMetadata

Constants

MIME_TYPES

Attributes

client[R]

Public Class Methods

new(client) click to toggle source
# File lib/reso_transport/base_metadata.rb, line 10
def initialize(client)
  @client = client
  @prefix = nil
  @classname = nil
end

Public Instance Methods

cache() click to toggle source
# File lib/reso_transport/base_metadata.rb, line 40
def cache
  @cache ||= client.send("#{prefix}_cache").new(cache_file)
end
cache_file() click to toggle source
# File lib/reso_transport/base_metadata.rb, line 44
def cache_file
  @cache_file ||= client.send "#{prefix}_file"
end
classname() click to toggle source
# File lib/reso_transport/base_metadata.rb, line 22
def classname
  raise 'classname not set' unless @classname

  @classname
end
data() click to toggle source
# File lib/reso_transport/base_metadata.rb, line 32
def data
  if cache_file
    cache.read || cache.write(raw)
  else
    raw
  end
end
parser() click to toggle source
# File lib/reso_transport/base_metadata.rb, line 28
def parser
  @parser ||= Object::const_get("#{classname}Parser").new.parse(data)
end
prefix() click to toggle source
# File lib/reso_transport/base_metadata.rb, line 16
def prefix
  raise 'prefix not set' unless @prefix

  @prefix
end
raw() click to toggle source
# File lib/reso_transport/base_metadata.rb, line 48
def raw
  return response.body if response.success?

  raise RequestError.new(request, response, classname)
end
request() click to toggle source
# File lib/reso_transport/base_metadata.rb, line 58
def request
  return @request.to_h if @request.respond_to? :to_h

  {}
end
response() click to toggle source
# File lib/reso_transport/base_metadata.rb, line 54
def response
  raise 'Must implement response method'
end