Class: Batsir::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/batsir/config.rb

Defined Under Namespace

Classes: ConfigBlock

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configObject

Adapted from Merb::Config class



7
8
9
# File 'lib/batsir/config.rb', line 7

def config
  @config
end

Class Method Details

.[](key) ⇒ Object

Retrieve the value of a config entry.

Parameters

key<Object>

The key to retrieve the parameter for.

Returns

Object

The value of the configuration parameter.

:api: public



74
75
76
# File 'lib/batsir/config.rb', line 74

def [](key)
  configuration[key]
end

.[]=(key, val) ⇒ Object

Set the value of a config entry.

Parameters

key<Object>

The key to set the parameter for.

val<Object>

The value of the parameter.

:api: public



85
86
87
# File 'lib/batsir/config.rb', line 85

def []=(key, val)
  configuration[key] = val
end

.configurationObject

Returns the current configuration or sets it up



28
29
30
# File 'lib/batsir/config.rb', line 28

def configuration
  @config ||= setup
end

.configure(&block) ⇒ Object

Set configuration parameters from a code block, where each method evaluates to a config parameter.

Parameters

&block

Configuration parameter block.

Examples

# Set environment and log level.
Batsir::Config.configure do
  environment "development"
  log_level   "debug"
end

Returns

nil

:api: public



164
165
166
167
# File 'lib/batsir/config.rb', line 164

def configure(&block)
  ConfigBlock.new(self, &block) if block_given?
  nil
end

.defaultsObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/batsir/config.rb', line 9

def defaults
  @defaults ||= {
    :amqp_host => 'localhost',
    :amqp_port => 5672,
    :amqp_user => 'guest',
    :amqp_pass => 'guest',
    :amqp_vhost => '/',
    :amqp_durable => true,
    :ampq_pool_size => 5,
    :redis_host => 'localhost',
    :redis_port => 6379,
    :redis_database => 0,
    :redis_namespace => 'batsir',
    :sidekiq_queue => 'batsir',
    :log_name => 'batsir'
  }
end

.delete(key) ⇒ Object

Remove the value of a config entry.

Parameters

key<Object>

The key of the parameter to delete.

Returns

Object

The value of the removed entry.

:api: public



98
99
100
# File 'lib/batsir/config.rb', line 98

def delete(key)
  configuration.delete(key)
end

.fetch(key, default = nil) ⇒ Object

Retrieve the value of a config entry, returning the provided default if the key is not present

Parameters

key<Object>

The key to retrieve the parameter for.

default<Object>

The default value to return if the parameter is not set.

Returns

Object

The value of the configuration parameter or the default.

:api: public



119
120
121
# File 'lib/batsir/config.rb', line 119

def fetch(key, default = nil)
  configuration.fetch(key, default)
end

.key?(key) ⇒ Boolean

Detects whether the provided key is in the config.

Parameters

key<Object>

The key to check.

Returns

Boolean

True if the key exists in the config.

:api: public

Returns:

  • (Boolean)


61
62
63
# File 'lib/batsir/config.rb', line 61

def key?(key)
  configuration.key?(key)
end

.method_missing(method, *args) ⇒ Object

Allows retrieval of single key config values via Batsir::Config.<key> Allows single key assignment via Merb.config.<key> = …

Parameters

method<~to_s>

Method name as hash key value.

*args

Value to set the configuration parameter to.

Returns

The value of the entry fetched or assigned to.

:api: public



180
181
182
183
184
185
186
# File 'lib/batsir/config.rb', line 180

def method_missing(method, *args)
  if method.to_s[-1,1] == '='
    self[method.to_s.tr('=','').to_sym] = args.first
  else
    self[method]
  end
end

.resetObject

Resets the configuration to its default state



104
105
106
# File 'lib/batsir/config.rb', line 104

def reset
  setup
end

.setup(settings = {}) ⇒ Object

Sets up the configuration by storing the given settings.

Parameters

settings<Hash>

Configuration settings to use. These are merged with the defaults.

Returns

The configuration as a hash.

:api: private



143
144
145
# File 'lib/batsir/config.rb', line 143

def setup(settings = {})
  @config = defaults.merge(settings)
end

.to_hashObject

Returns the configuration as a hash.

Returns

Hash

The config as a hash.

:api: public



129
130
131
# File 'lib/batsir/config.rb', line 129

def to_hash
  configuration
end

.use {|configuration| ... } ⇒ Object

Yields the configuration.

Block parameters

c<Hash>

The configuration parameters.

Examples

Batsir::Config.use do |config|
  config[:exception_details] = false
  config[:log_stream]        = STDOUT
end

Returns

nil

:api: public

Yields:



47
48
49
50
# File 'lib/batsir/config.rb', line 47

def use
  yield configuration
  nil
end