module BerkeleyLibrary::TIND::Config

Constants

DEFAULT_TZID
DEFAULT_USER_AGENT
ENV_TIND_API_KEY

The environment variable from which to read the TIND API key.

ENV_TIND_BASE_URL

The root URL for the TIND installation

Attributes

api_key[W]

Sets the TIND API key. @param value [String] the API key.

Public Class Methods

api_key() click to toggle source

Gets the TIND API key. @return [String, nil] the TIND API key, or `nil` if not set.

# File lib/berkeley_library/tind/config.rb, line 28
def api_key
  @api_key ||= default_tind_api_key
end
base_uri() click to toggle source
# File lib/berkeley_library/tind/config.rb, line 32
def base_uri
  @base_uri ||= default_tind_base_uri
end
base_uri=(value) click to toggle source
# File lib/berkeley_library/tind/config.rb, line 36
def base_uri=(value)
  @base_uri = uri_or_nil(value)
end
blank?(v) click to toggle source
# File lib/berkeley_library/tind/config.rb, line 60
def blank?(v)
  v.nil? || v.to_s.strip.empty?
end
timezone() click to toggle source
# File lib/berkeley_library/tind/config.rb, line 40
def timezone
  @timezone ||= default_timezone
end
timezone=(value) click to toggle source
# File lib/berkeley_library/tind/config.rb, line 44
def timezone=(value)
  raise ArgumentError, "Not a #{TZInfo::Timezone}" unless value.respond_to?(:utc_to_local)

  @timezone = value
end
user_agent() click to toggle source
# File lib/berkeley_library/tind/config.rb, line 50
def user_agent
  @user_agent || DEFAULT_USER_AGENT
end
user_agent=(value) click to toggle source
# File lib/berkeley_library/tind/config.rb, line 54
def user_agent=(value)
  raise ArgumentError, 'TIND firewall rules require a user agent' if blank?(value)

  @user_agent = value
end

Private Class Methods

default_timezone() click to toggle source
# File lib/berkeley_library/tind/config.rb, line 66
def default_timezone
  TZInfo::Timezone.get(Config::DEFAULT_TZID)
end
default_tind_api_key() click to toggle source
# File lib/berkeley_library/tind/config.rb, line 70
def default_tind_api_key
  ENV[Config::ENV_TIND_API_KEY] || rails_tind_api_key
end
default_tind_base_uri() click to toggle source
# File lib/berkeley_library/tind/config.rb, line 74
def default_tind_base_uri
  return unless (base_url = ENV[Config::ENV_TIND_BASE_URL] || rails_tind_base_uri)

  uri_or_nil(base_url)
end
rails_config() click to toggle source
# File lib/berkeley_library/tind/config.rb, line 94
def rails_config
  return unless defined?(Rails)
  return unless (app = Rails.application)

  app.config
end
rails_tind_api_key() click to toggle source
# File lib/berkeley_library/tind/config.rb, line 87
def rails_tind_api_key
  return unless (rails_config = self.rails_config)
  return unless rails_config.respond_to?(:tind_api_key)

  rails_config.tind_api_key
end
rails_tind_base_uri() click to toggle source
# File lib/berkeley_library/tind/config.rb, line 80
def rails_tind_base_uri
  return unless (rails_config = self.rails_config)
  return unless rails_config.respond_to?(:tind_base_uri)

  rails_config.tind_base_uri
end