class Celsius::Primo::Adapter

Attributes

institution[RW]
languages[RW]
locations[RW]
timeout[RW]

Public Class Methods

new(options = {}) click to toggle source
Calls superclass method
# File lib/celsius/primo/adapter.rb, line 15
def initialize(options = {})
  super # e.g. load super class locales

  # add adapter specific locales (see Celsius::I18n)
  self.class.load_locales_from_directory("#{File.dirname(__FILE__)}/locales")

  # ease options processing by eleminating all symbols
  options = deep_stringify(options)

  # check for required options
  raise ArgumentError, "soap_api_options are needed!" unless options["soap_api_options"]

  @institution = options["institution"]
  @languages = options["languages"]
  @locations = options["locations"]
  @soap_api_options = options["soap_api_options"]
  @timeout = options["timeout"]
end

Public Instance Methods

mget(*args) click to toggle source
# File lib/celsius/primo/adapter.rb, line 34
def mget(*args)
  Mget.new(self).call(*args)
end
soap_api() click to toggle source
# File lib/celsius/primo/adapter.rb, line 42
def soap_api
  Celsius::Primo::SoapApi.new(@soap_api_options)
end

Private Instance Methods

deep_stringify(obj) click to toggle source
# File lib/celsius/primo/adapter.rb, line 49
def deep_stringify(obj)
  JSON.parse(JSON.dump(obj), symbolize_names: false)
end