Class: Staticd::Config
- Inherits:
-
Object
- Object
- Staticd::Config
- Includes:
- Singleton
- Defined in:
- lib/staticd/config.rb
Overview
Manage Staticd Configuration.
Can load configuration from a hash, from environment variables with the STATICD_ prefix or from a config file in yaml format.
Once loaded,configuration is available from anywhere in the app using Staticd::Config.
Class Method Summary collapse
-
.<<(settings) ⇒ Object
Push settings into Staticd global configuration.
-
.[](setting) ⇒ Object
Get a setting value from the Staticd global configuration.
-
.[]=(setting, value) ⇒ Object
Same as << method.
- .key?(setting_name) ⇒ Boolean
-
.load_env ⇒ Object
Load configuration from environment variables.
-
.load_file(config_file) ⇒ Object
Load configuration from a YAML file.
- .to_s ⇒ Object
Instance Method Summary collapse
- #<<(settings) ⇒ Object
- #[](setting) ⇒ Object
-
#initialize ⇒ Config
constructor
A new instance of Config.
- #key?(setting_name) ⇒ Boolean
- #to_s ⇒ Object
Constructor Details
#initialize ⇒ Config
Returns a new instance of Config.
81 82 83 |
# File 'lib/staticd/config.rb', line 81 def initialize @settings = {} end |
Class Method Details
.<<(settings) ⇒ Object
59 60 61 |
# File 'lib/staticd/config.rb', line 59 def self.<<(settings) instance << settings end |
.[](setting) ⇒ Object
Get a setting value from the Staticd global configuration.
69 70 71 |
# File 'lib/staticd/config.rb', line 69 def self.[](setting) instance[setting] end |
.[]=(setting, value) ⇒ Object
Same as << method.
64 65 66 |
# File 'lib/staticd/config.rb', line 64 def self.[]=(setting, value) instance << {setting => value} end |
.key?(setting_name) ⇒ Boolean
73 74 75 |
# File 'lib/staticd/config.rb', line 73 def self.key?(setting_name) instance.key?(setting_name) end |
.load_env ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'lib/staticd/config.rb', line 22 def self.load_env settings = {} env = ENV.select { |name, value| name =~ /^STATICD_/ } env.each do |name, value| setting = name[/^STATICD_(.*)/, 1].downcase.to_sym settings[setting] = value end instance << settings end |
.load_file(config_file) ⇒ Object
44 45 46 47 48 49 |
# File 'lib/staticd/config.rb', line 44 def self.load_file(config_file) content = File.read(config_file) erb = ERB.new(content) settings = YAML.load(erb.result) instance << settings end |
.to_s ⇒ Object
77 78 79 |
# File 'lib/staticd/config.rb', line 77 def self.to_s instance.to_s end |
Instance Method Details
#<<(settings) ⇒ Object
85 86 87 88 |
# File 'lib/staticd/config.rb', line 85 def <<(settings) settings = hash_symbolize_keys(settings) mutex.synchronize { @settings.merge!(settings) } end |
#[](setting) ⇒ Object
90 91 92 |
# File 'lib/staticd/config.rb', line 90 def [](setting) mutex.synchronize { @settings.key?(setting) ? @settings[setting] : nil } end |
#key?(setting_name) ⇒ Boolean
94 95 96 |
# File 'lib/staticd/config.rb', line 94 def key?(setting_name) mutex.synchronize { @settings.key?(setting_name) } end |
#to_s ⇒ Object
98 99 100 |
# File 'lib/staticd/config.rb', line 98 def to_s mutex.synchronize { @settings.to_s } end |