Module AppConfig
In: lib/app_config.rb
lib/app_config/storage/base.rb
lib/app_config/storage/memory.rb
lib/app_config/storage/yaml.rb
lib/app_config/storage/mongo.rb
lib/app_config/error.rb
lib/app_config/storage.rb

Methods

[]   []=   empty?   reset!   setup   setup?   to_hash  

Classes and Modules

Module AppConfig::Error
Module AppConfig::Storage

Constants

VERSION = '1.0.2'

External Aliases

environment -> env

Public Class methods

Access the configured `key`’s value.

[Source]

# File lib/app_config.rb, line 50
    def [](key)
      setup unless setup?
      storage[key]
    end

Set a new `value` for `key` (persistence depends on the type of Storage).

[Source]

# File lib/app_config.rb, line 56
    def []=(key, value)
      setup unless setup?
      storage[key] = value
    end

[Source]

# File lib/app_config.rb, line 61
    def empty?
      storage.empty?
    end

Clears the `@@storage`.

[Source]

# File lib/app_config.rb, line 40
    def reset!
      if defined?(@@storage)
        remove_class_variable(:@@storage)
        true
      else
        false
      end
    end

Accepts an `options` hash or a block. See each storage method‘s documentation for their specific options.

Valid storage methods:

[Source]

# File lib/app_config.rb, line 18
    def setup(options = {}, &block)
      @@options = options

      if @@options[:yaml]
        @@storage = AppConfig::Storage::YAML.new(@@options.delete(:yaml))
      elsif @@options[:mongo]
        @@storage = AppConfig::Storage::Mongo.new(@@options.delete(:mongo))
      else
        @@storage = AppConfig::Storage::Memory.new(@@options)
      end

      yield @@storage if block_given?

      to_hash
    end

Returns `true` if {AppConfig.setup AppConfig.setup} has been called.

[Source]

# File lib/app_config.rb, line 35
    def setup?
      !!(defined?(@@storage) && !@@storage.empty?)
    end

[Source]

# File lib/app_config.rb, line 65
    def to_hash
      setup? ? storage.to_hash : Hashish.new
    end

[Validate]