module AppConfig
Constants
- VERSION
Public Class Methods
method_missing(name, *args)
click to toggle source
Wrap `method_missing` to proxy to `storage`.
# File lib/app_config.rb, line 65 def method_missing(name, *args) storage.send(name.to_sym, *args) end
reload!()
click to toggle source
Reload the data from storage.
# File lib/app_config.rb, line 47 def reload! if storage.respond_to?(:reload!) storage.reload! else raise AppConfig::Error::MustOverride.new("#{storage.class}#reload!") end end
reset!()
click to toggle source
Clears the `@@storage`.
# File lib/app_config.rb, line 56 def reset! @@storage = nil end
setup!(options = {}) { |storage| ... }
click to toggle source
Accepts an `options` hash or a block. See each storage method's documentation for their specific options.
Valid storage methods:
-
`:mongo` - {AppConfig::Storage::Mongo AppConfig::Storage::Mongo}
-
`:postgres` - {AppConfig::Storage::Mongo AppConfig::Storage::Postgres}
-
`:sqlite` - {AppConfig::Storage::Mongo AppConfig::Storage::SQLite}
-
`:yaml` - {AppConfig::Storage::YAML AppConfig::Storage::YAML}
# File lib/app_config.rb, line 19 def setup!(options = {}, &block) @@options = options if @@options[:yaml] @@storage = AppConfig::Storage::YAML.new(@@options.delete(:yaml), @@options) elsif @@options[:mongo] @@storage = AppConfig::Storage::Mongo.new(@@options.delete(:mongo)) elsif @@options[:mysql] @@storage = AppConfig::Storage::MySQL.new(@@options.delete(:mysql)) elsif @@options[:postgres] @@storage = AppConfig::Storage::Postgres.new(@@options.delete(:postgres)) elsif @@options[:sqlite] @@storage = AppConfig::Storage::SQLite.new(@@options.delete(:sqlite)) else @@storage = AppConfig::Storage::Base.new(@@options) end yield @@storage if block_given? to_hash end
setup?()
click to toggle source
Returns `true` if {AppConfig.setup! AppConfig.setup!
} has been called.
# File lib/app_config.rb, line 42 def setup? defined?(@@storage) && !@@storage.nil? end
to_hash()
click to toggle source
# File lib/app_config.rb, line 60 def to_hash storage ? storage.to_hash : {} end
Private Class Methods
storage()
click to toggle source
Returns the `@@storage` contents, which is what is exposed as the configuration.
# File lib/app_config.rb, line 72 def storage begin @@storage rescue NameError # @@storage does not exist raise AppConfig::Error::NotSetup unless setup? end end