Class: LWS::Config
- Inherits:
-
Hashie::Dash
- Object
- Hashie::Dash
- LWS::Config
- Defined in:
- lib/lws/config.rb
Overview
Either the API token or API token middleware needs to be configured for the library to work properly!
The LWS API configuration class
This class represents the configuration that is used for connecting to LWS.
Constant Summary collapse
- VALID_FILE_PROPERTIES =
The list of properties that can be set using a config file.
[:api_token, :endpoints, :http_debug, :http_debug_headers, :json_debug]
Instance Attribute Summary collapse
-
#api_token ⇒ String?
The API token necessary to gain access.
-
#api_token_middleware ⇒ Faraday::Middleware?
The API token middleware that provides the API token to the request at runtime.
-
#caching_object ⇒ #read, #write
An object that can cache request results.
-
#endpoints ⇒ Hash{Symbol=>String}
A mapping of application endpoint overrides (default: {}).
-
#environment ⇒ Symbol
The (default) API environment (default:
:production
). -
#http_caching ⇒ Boolean
Whether HTTP caching is enabled.
-
#http_caching_object ⇒ #read, ...
An object that caches results respecting HTTP expiration (instead of an in-memory hash).
-
#http_debug ⇒ Boolean
Whether to show HTTP debug messages (default:
false
). -
#http_debug_headers ⇒ Boolean
Whether to show HTTP headers in the debug messages (default:
false
). -
#http_persistent ⇒ Boolean
Whether persistent HTTP connections are used.
-
#json_debug ⇒ Boolean
Whether to show JSON debug messages (default:
false
). -
#logger ⇒ #fatal, ...
The logger object (Rails logger, Logger, etc.).
-
#stubbing ⇒ String
The path to a directory with stubbing fixtures (setting this enables the default stubs).
Instance Method Summary collapse
-
#load_config_file(config_file, force_environment = nil) ⇒ Boolean
The configuration file has a section per environment that indicates per property what to use if it is unset.
Instance Attribute Details
#api_token ⇒ String?
Returns the API token necessary to gain access.
27 |
# File 'lib/lws/config.rb', line 27 property :api_token |
#api_token_middleware ⇒ Faraday::Middleware?
Returns the API token middleware that provides the API token to the request at runtime.
32 |
# File 'lib/lws/config.rb', line 32 property :api_token_middleware |
#caching_object ⇒ #read, #write
Returns an object that can cache request results.
36 |
# File 'lib/lws/config.rb', line 36 property :caching_object, default: nil |
#endpoints ⇒ Hash{Symbol=>String}
Returns a mapping of application endpoint overrides (default: {}).
41 |
# File 'lib/lws/config.rb', line 41 property :endpoints, default: {} |
#environment ⇒ Symbol
Returns the (default) API environment (default: :production
).
46 |
# File 'lib/lws/config.rb', line 46 property :environment, default: :production |
#http_caching ⇒ Boolean
Returns whether HTTP caching is enabled.
50 |
# File 'lib/lws/config.rb', line 50 property :http_caching, default: false |
#http_caching_object ⇒ #read, ...
Returns an object that caches results respecting HTTP expiration (instead of an in-memory hash).
55 |
# File 'lib/lws/config.rb', line 55 property :http_caching_object, default: nil |
#http_debug ⇒ Boolean
Returns whether to show HTTP debug messages (default: false
).
59 |
# File 'lib/lws/config.rb', line 59 property :http_debug, default: false |
#http_debug_headers ⇒ Boolean
Returns whether to show HTTP headers in the debug messages (default: false
).
64 |
# File 'lib/lws/config.rb', line 64 property :http_debug_headers, default: false |
#http_persistent ⇒ Boolean
Returns whether persistent HTTP connections are used.
68 |
# File 'lib/lws/config.rb', line 68 property :http_persistent, default: true |
#json_debug ⇒ Boolean
Returns whether to show JSON debug messages (default: false
).
72 |
# File 'lib/lws/config.rb', line 72 property :json_debug, default: false |
#logger ⇒ #fatal, ...
Returns the logger object (Rails logger, Logger, etc.).
77 |
# File 'lib/lws/config.rb', line 77 property :logger |
#stubbing ⇒ String
Returns the path to a directory with stubbing fixtures (setting this enables the default stubs).
82 |
# File 'lib/lws/config.rb', line 82 property :stubbing |
Instance Method Details
#load_config_file(config_file, force_environment = nil) ⇒ Boolean
The configuration file has a section per environment that indicates per property what to use if it is unset.
Note that this is only done for a specific subset of of properties. See VALID_FILE_PROPERTIES for this subset!
The configuration file can optionally have a “default” section with an environment key that selects the default environment (unless overriden by the LC_LWS_ENV
environment variable).
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
# File 'lib/lws/config.rb', line 123 def load_config_file(config_file, force_environment = nil) return false unless File.exist? config_file config_data = YAML.load_file(config_file) environment = force_environment || ENV["LC_LWS_ENV"] || config_data.dig("default", "environment") || self.environment self.environment = environment.to_sym config = config_data[environment.to_s] || {} config.each_pair do |key, value| unless VALID_FILE_PROPERTIES.include? key.to_sym raise "encountered an invalid config property \"#{key}\" " + "in config file #{config_file}!" end configure(key, value) end true end |