Class: Hypertube::Sdk::Configuration::ConfigSourceResolver
- Inherits:
-
Object
- Object
- Hypertube::Sdk::Configuration::ConfigSourceResolver
- Defined in:
- lib/hypertube-ruby-sdk/sdk/configuration/config_source_resolver.rb
Class Method Summary collapse
- ._get_config_source_as_string(config_source) ⇒ Object
- ._parse_configs_and_add_to_collection(priority, config_string) ⇒ Object
- .add_configs(priority, config_source) ⇒ Object
- .clear_configs ⇒ Object
- .get_config(config_name) ⇒ Object
Class Method Details
._get_config_source_as_string(config_source) ⇒ Object
28 29 30 31 32 33 34 35 |
# File 'lib/hypertube-ruby-sdk/sdk/configuration/config_source_resolver.rb', line 28 def self._get_config_source_as_string(config_source) raise 'Hypertube::Sdk::Configuration::Config source cannot be null or whitespace.' if config_source.nil? || config_source.strip.empty? env_value = ENV[config_source] config_source = env_value if env_value && !env_value.strip.empty? config_source = File.read(config_source, encoding: 'utf-8') if File.file?(config_source) config_source.strip end |
._parse_configs_and_add_to_collection(priority, config_string) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/hypertube-ruby-sdk/sdk/configuration/config_source_resolver.rb', line 37 def self._parse_configs_and_add_to_collection(priority, config_string) # Try JSON begin json_object = JSON.parse(config_string) Hypertube::Sdk::Configuration::ConfigResolvers::JsonConfigResolver.add_configs(priority, json_object) return rescue StandardError => e puts "Failed to parse config source as JSON: #{e}" unless e.is_a?(JSON::ParserError) end # Try YAML begin Hypertube::Sdk::Configuration::ConfigResolvers::YamlConfigResolver.add_configs(priority, config_string) return rescue StandardError => e puts "Failed to parse config source as YAML: #{e}" unless e.is_a?(ArgumentError) end # Try connection string begin Hypertube::Sdk::Configuration::ConfigResolvers::ConnectionStringConfigResolver.add_configs(priority, config_string) return rescue StandardError => e # Silently continue end raise "Hypertube::Sdk::Configuration::Config source is not valid JSON, YAML, or connection string format:\n#{config_string}" end |
.add_configs(priority, config_source) ⇒ Object
13 14 15 16 17 |
# File 'lib/hypertube-ruby-sdk/sdk/configuration/config_source_resolver.rb', line 13 def self.add_configs(priority, config_source) puts "Adding config from source: #{config_source} with priority '#{Hypertube::Sdk::Configuration::ConfigPriority.to_s(priority)}'" config_string = Hypertube::Sdk::Configuration::ConfigSourceResolver._get_config_source_as_string(config_source) Hypertube::Sdk::Configuration::ConfigSourceResolver._parse_configs_and_add_to_collection(priority, config_string) end |
.clear_configs ⇒ Object
24 25 26 |
# File 'lib/hypertube-ruby-sdk/sdk/configuration/config_source_resolver.rb', line 24 def self.clear_configs Hypertube::Sdk::Configuration::ConfigsDictionary.clear_configs end |
.get_config(config_name) ⇒ Object
19 20 21 22 |
# File 'lib/hypertube-ruby-sdk/sdk/configuration/config_source_resolver.rb', line 19 def self.get_config(config_name) puts "Retrieving config #{config_name}" Hypertube::Sdk::Configuration::ConfigsDictionary.get_config(config_name) end |