class MetalArchives::Configuration
Contains configuration options
Attributes
app_contact[RW]
Required. Application contact email (used in request header)
app_name[RW]
Required. Application name (used in request header)
app_version[RW]
Required. Application version (used in request header)
cache_options[RW]
Cache
strategy options
cache_strategy[RW]
Cache
strategy
endpoint[RW]
Override Metal Archives endpoint (defaults to www.metal-archives.com/)
endpoint_password[RW]
endpoint_user[RW]
Endpoint HTTP Basic authentication
logger[RW]
Logger instance
Public Class Methods
new(**attributes)
click to toggle source
Default configuration values
# File lib/metal_archives/configuration.rb, line 56 def initialize(**attributes) attributes.each { |key, value| send(:"#{key}=", value) } @endpoint ||= "https://www.metal-archives.com/" @logger ||= Logger.new $stdout @cache_strategy ||= "memory" @cache_options ||= { size: 100 } end
Public Instance Methods
validate!()
click to toggle source
Validate configuration
- Raises
-
MetalArchives::Errors::ConfigurationError when configuration is invalid
# File lib/metal_archives/configuration.rb, line 72 def validate! raise Errors::InvalidConfigurationError, "app_name has not been configured" if app_name.blank? raise Errors::InvalidConfigurationError, "app_version has not been configured" if app_version.blank? raise Errors::InvalidConfigurationError, "app_contact has not been configured" if app_contact.blank? raise Errors::InvalidConfigurationError, "cache_strategy has not been configured" if cache_strategy.blank? raise Errors::InvalidConfigurationError, "cache_strategy must be one of: #{CACHE_STRATEGIES.join(', ')}" if CACHE_STRATEGIES.exclude?(cache_strategy.to_s) end