Class: Unleash::Configuration
- Inherits:
-
Object
- Object
- Unleash::Configuration
- Defined in:
- lib/unleash/configuration.rb
Instance Attribute Summary collapse
-
#app_name ⇒ Object
Returns the value of attribute app_name.
-
#backup_file ⇒ Object
Returns the value of attribute backup_file.
-
#bootstrap_config ⇒ Object
Returns the value of attribute bootstrap_config.
-
#custom_http_headers ⇒ Object
Returns the value of attribute custom_http_headers.
-
#disable_client ⇒ Object
Returns the value of attribute disable_client.
-
#disable_metrics ⇒ Object
Returns the value of attribute disable_metrics.
-
#environment ⇒ Object
Returns the value of attribute environment.
-
#instance_id ⇒ Object
Returns the value of attribute instance_id.
-
#log_level ⇒ Object
Returns the value of attribute log_level.
-
#logger ⇒ Object
Returns the value of attribute logger.
-
#metrics_interval ⇒ Object
Returns the value of attribute metrics_interval.
-
#project_name ⇒ Object
Returns the value of attribute project_name.
-
#refresh_interval ⇒ Object
Returns the value of attribute refresh_interval.
-
#retry_limit ⇒ Object
Returns the value of attribute retry_limit.
-
#strategies ⇒ Object
Returns the value of attribute strategies.
-
#timeout ⇒ Object
Returns the value of attribute timeout.
-
#url ⇒ Object
Returns the value of attribute url.
Instance Method Summary collapse
- #client_metrics_uri ⇒ Object
- #client_register_uri ⇒ Object
- #fetch_toggles_uri ⇒ Object
- #http_headers ⇒ Object
-
#initialize(opts = {}) ⇒ Configuration
constructor
A new instance of Configuration.
- #metrics_interval_in_millis ⇒ Object
- #refresh_backup_file! ⇒ Object
- #url_stripped_of_slash ⇒ Object
- #use_bootstrap? ⇒ Boolean
- #validate! ⇒ Object
Constructor Details
#initialize(opts = {}) ⇒ Configuration
Returns a new instance of Configuration.
26 27 28 29 30 31 32 33 34 |
# File 'lib/unleash/configuration.rb', line 26 def initialize(opts = {}) validate_custom_http_headers!(opts[:custom_http_headers]) if opts.has_key?(:custom_http_headers) set_defaults initialize_default_logger if opts[:logger].nil? merge(opts) refresh_backup_file! end |
Instance Attribute Details
#app_name ⇒ Object
Returns the value of attribute app_name.
7 8 9 |
# File 'lib/unleash/configuration.rb', line 7 def app_name @app_name end |
#backup_file ⇒ Object
Returns the value of attribute backup_file.
7 8 9 |
# File 'lib/unleash/configuration.rb', line 7 def backup_file @backup_file end |
#bootstrap_config ⇒ Object
Returns the value of attribute bootstrap_config.
7 8 9 |
# File 'lib/unleash/configuration.rb', line 7 def bootstrap_config @bootstrap_config end |
#custom_http_headers ⇒ Object
Returns the value of attribute custom_http_headers.
7 8 9 |
# File 'lib/unleash/configuration.rb', line 7 def custom_http_headers @custom_http_headers end |
#disable_client ⇒ Object
Returns the value of attribute disable_client.
7 8 9 |
# File 'lib/unleash/configuration.rb', line 7 def disable_client @disable_client end |
#disable_metrics ⇒ Object
Returns the value of attribute disable_metrics.
7 8 9 |
# File 'lib/unleash/configuration.rb', line 7 def disable_metrics @disable_metrics end |
#environment ⇒ Object
Returns the value of attribute environment.
7 8 9 |
# File 'lib/unleash/configuration.rb', line 7 def environment @environment end |
#instance_id ⇒ Object
Returns the value of attribute instance_id.
7 8 9 |
# File 'lib/unleash/configuration.rb', line 7 def instance_id @instance_id end |
#log_level ⇒ Object
Returns the value of attribute log_level.
7 8 9 |
# File 'lib/unleash/configuration.rb', line 7 def log_level @log_level end |
#logger ⇒ Object
Returns the value of attribute logger.
7 8 9 |
# File 'lib/unleash/configuration.rb', line 7 def logger @logger end |
#metrics_interval ⇒ Object
Returns the value of attribute metrics_interval.
7 8 9 |
# File 'lib/unleash/configuration.rb', line 7 def metrics_interval @metrics_interval end |
#project_name ⇒ Object
Returns the value of attribute project_name.
7 8 9 |
# File 'lib/unleash/configuration.rb', line 7 def project_name @project_name end |
#refresh_interval ⇒ Object
Returns the value of attribute refresh_interval.
7 8 9 |
# File 'lib/unleash/configuration.rb', line 7 def refresh_interval @refresh_interval end |
#retry_limit ⇒ Object
Returns the value of attribute retry_limit.
7 8 9 |
# File 'lib/unleash/configuration.rb', line 7 def retry_limit @retry_limit end |
#strategies ⇒ Object
Returns the value of attribute strategies.
7 8 9 |
# File 'lib/unleash/configuration.rb', line 7 def strategies @strategies end |
#timeout ⇒ Object
Returns the value of attribute timeout.
7 8 9 |
# File 'lib/unleash/configuration.rb', line 7 def timeout @timeout end |
#url ⇒ Object
Returns the value of attribute url.
7 8 9 |
# File 'lib/unleash/configuration.rb', line 7 def url @url end |
Instance Method Details
#client_metrics_uri ⇒ Object
66 67 68 |
# File 'lib/unleash/configuration.rb', line 66 def client_metrics_uri URI("#{self.url_stripped_of_slash}/client/metrics") end |
#client_register_uri ⇒ Object
70 71 72 |
# File 'lib/unleash/configuration.rb', line 70 def client_register_uri URI("#{self.url_stripped_of_slash}/client/register") end |
#fetch_toggles_uri ⇒ Object
60 61 62 63 64 |
# File 'lib/unleash/configuration.rb', line 60 def fetch_toggles_uri uri = URI("#{self.url_stripped_of_slash}/client/features") uri.query = "project=#{self.project_name}" unless self.project_name.nil? uri end |
#http_headers ⇒ Object
52 53 54 55 56 57 58 |
# File 'lib/unleash/configuration.rb', line 52 def http_headers { 'UNLEASH-INSTANCEID' => self.instance_id, 'UNLEASH-APPNAME' => self.app_name, 'Unleash-Client-Spec' => '4.2.2' }.merge!(generate_custom_http_headers) end |
#metrics_interval_in_millis ⇒ Object
36 37 38 |
# File 'lib/unleash/configuration.rb', line 36 def metrics_interval_in_millis self.metrics_interval * 1_000 end |
#refresh_backup_file! ⇒ Object
48 49 50 |
# File 'lib/unleash/configuration.rb', line 48 def refresh_backup_file! self.backup_file = File.join(Dir.tmpdir, "unleash-#{app_name}-repo.json") end |
#url_stripped_of_slash ⇒ Object
74 75 76 |
# File 'lib/unleash/configuration.rb', line 74 def url_stripped_of_slash self.url.delete_suffix '/' end |
#use_bootstrap? ⇒ Boolean
78 79 80 |
# File 'lib/unleash/configuration.rb', line 78 def use_bootstrap? self.bootstrap_config&.valid? end |
#validate! ⇒ Object
40 41 42 43 44 45 46 |
# File 'lib/unleash/configuration.rb', line 40 def validate! return if self.disable_client raise ArgumentError, "URL and app_name are required parameters." if self.app_name.nil? || self.url.nil? validate_custom_http_headers!(self.custom_http_headers) end |