Class: Sevendigital::ClientConfiguration
- Inherits:
-
OpenStruct
- Object
- OpenStruct
- Sevendigital::ClientConfiguration
- Defined in:
- lib/sevendigital/client_configuration.rb
Instance Method Summary collapse
- #current_environment ⇒ Object
- #default_configuration_file ⇒ Object
-
#initialize(*args) ⇒ ClientConfiguration
constructor
A new instance of ClientConfiguration.
- #load_configuration_from_yml(file_name, environment = nil) ⇒ Object
- #override_with(configuration) ⇒ Object
Constructor Details
#initialize(*args) ⇒ ClientConfiguration
Returns a new instance of ClientConfiguration.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/sevendigital/client_configuration.rb', line 19 def initialize(*args) super() self.override_with(Sevendigital::DEFAULT_CONFIGURATION) self.override_with(default_configuration_file) args.each do |configuration_argument| self.override_with(configuration_argument) end #puts "Now: #{self.inspect}" end |
Instance Method Details
#current_environment ⇒ Object
58 59 60 |
# File 'lib/sevendigital/client_configuration.rb', line 58 def current_environment defined?(Rails.env) ? Rails.env : nil end |
#default_configuration_file ⇒ Object
53 54 55 56 |
# File 'lib/sevendigital/client_configuration.rb', line 53 def default_configuration_file return nil unless defined?(Rails.root) Rails.root.join('config', 'sevendigital.yml').to_s end |
#load_configuration_from_yml(file_name, environment = nil) ⇒ Object
62 63 64 65 66 67 68 69 70 71 |
# File 'lib/sevendigital/client_configuration.rb', line 62 def load_configuration_from_yml(file_name, environment=nil) plain_settings = transform_keys_to_symbols(YAML.load_file(file_name)) if (plain_settings[:common] || (environment && plain_settings[environment.to_sym])) then environment_settings = plain_settings[:common] || {} environment_settings.update(plain_settings[environment.to_sym]) if environment environment_settings else plain_settings end end |
#override_with(configuration) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/sevendigital/client_configuration.rb', line 34 def override_with(configuration) #puts "Now: #{self.inspect}" #puts "Overriding with #{configuration.class}: #{configuration.inspect}" return self unless configuration if configuration.kind_of? Hash then table.merge!(configuration) return self end if configuration.kind_of? OpenStruct then table.merge!(configuration.marshal_dump) return self end if (configuration.kind_of? String) && is_it_yml_file?(configuration) then table.merge!(load_configuration_from_yml(configuration, current_environment)) return self end end |