Class: Colloquy::Helpers::Settings::SettingsProxy
- Inherits:
-
Object
- Object
- Colloquy::Helpers::Settings::SettingsProxy
- Includes:
- Singleton
- Defined in:
- lib/colloquy/helpers/settings.rb
Instance Method Summary collapse
- #[](identifier) ⇒ Object
- #configure ⇒ Object
- #configure! ⇒ Object
- #configured? ⇒ Boolean
- #logger ⇒ Object
- #require_settings_libraries ⇒ Object
- #settings_configuration(params) ⇒ Object
- #settings_configuration_exists? ⇒ Boolean
- #settings_configuration_file ⇒ Object
- #settings_configuration_load ⇒ Object
Instance Method Details
#[](identifier) ⇒ Object
72 73 74 75 76 77 78 |
# File 'lib/colloquy/helpers/settings.rb', line 72 def [](identifier) unless @settings_configurations[identifier.to_sym] raise Colloquy::SettingsFileNotFoundException, "A settings file for #{identifier} was not found, did you mis-spell or forget to configure it?" end @settings_configurations[identifier.to_sym] end |
#configure ⇒ Object
20 21 22 23 |
# File 'lib/colloquy/helpers/settings.rb', line 20 def configure return if configured? configure! end |
#configure! ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/colloquy/helpers/settings.rb', line 29 def configure! unless settings_configuration_file.exist? raise Colloquy::SettingsConfigurationNotFoundException, "Cannot find #{settings_configuration_file}" end begin require_settings_libraries rescue LoadError raise Colloquy::SettingsGemsNotFoundException, "Cannot load the required settings gems." end @settings_configurations ||= {} settings_configuration_load @configured = true end |
#configured? ⇒ Boolean
25 26 27 |
# File 'lib/colloquy/helpers/settings.rb', line 25 def configured? @configured end |
#logger ⇒ Object
96 97 98 |
# File 'lib/colloquy/helpers/settings.rb', line 96 def logger Colloquy.logger end |
#require_settings_libraries ⇒ Object
50 51 52 |
# File 'lib/colloquy/helpers/settings.rb', line 50 def require_settings_libraries require "yaml" end |
#settings_configuration(params) ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/colloquy/helpers/settings.rb', line 80 def settings_configuration(params) begin if params[0] == "/" yaml = YAML::load(File.open(params)) else yaml = YAML::load(File.open(Colloquy.root.join(params))) end rescue Errno::ENOENT => e logger.error "File not found: #{params}" return {} rescue Psych::SyntaxError => e logger.error "File #{params} is not valid YAML" return {} end end |
#settings_configuration_exists? ⇒ Boolean
68 69 70 |
# File 'lib/colloquy/helpers/settings.rb', line 68 def settings_configuration_exists? settings_configuration_file.exist? end |
#settings_configuration_file ⇒ Object
46 47 48 |
# File 'lib/colloquy/helpers/settings.rb', line 46 def settings_configuration_file Colloquy.root.join('config', 'settings.yaml') end |
#settings_configuration_load ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/colloquy/helpers/settings.rb', line 54 def settings_configuration_load return unless settings_configuration_exists? @settings_configuration_entries = File.open(settings_configuration_file, "r") { |f| YAML.load(f.read) } if @settings_configuration_entries @settings_configuration_entries.each do |identifier, params| @settings_configurations[identifier.to_sym] = settings_configuration(params) end else raise Colloquy::SettingsConfigurationNotFoundException, "Cannot find configuration in #{settings_configuration_file}. Is it empty?" end end |