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