Class: MessageBird::Config

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

Defined Under Namespace

Classes: ConfigBlock

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configObject

Returns the value of attribute config.



7
8
9
# File 'lib/messagebird/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



68
69
70
# File 'lib/messagebird/config.rb', line 68

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



79
80
81
# File 'lib/messagebird/config.rb', line 79

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

.configurationObject

Returns the current configuration or sets it up



22
23
24
# File 'lib/messagebird/config.rb', line 22

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.
MessageBird::Config.configure do
  environment "development"
  log_level   "debug"
end

Returns

nil

:api: public



158
159
160
161
# File 'lib/messagebird/config.rb', line 158

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

.defaultsObject



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/messagebird/config.rb', line 9

def defaults
  @defaults ||= {
    :module =>      :http,
    :api_url =>     "https://api.messagebird.com/api/sms",
    :username =>    'replace_me',
    :password =>    'replace_me',
    :sender_name => 'replace_me',
    :test_mode =>   true,
    :enabled =>     false
  }
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



92
93
94
# File 'lib/messagebird/config.rb', line 92

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



113
114
115
# File 'lib/messagebird/config.rb', line 113

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



55
56
57
# File 'lib/messagebird/config.rb', line 55

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

.method_missing(method, *args) ⇒ Object

Allows retrieval of single key config values via MessageBird::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



174
175
176
177
178
179
180
# File 'lib/messagebird/config.rb', line 174

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



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

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



137
138
139
# File 'lib/messagebird/config.rb', line 137

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



123
124
125
# File 'lib/messagebird/config.rb', line 123

def to_hash
  configuration
end

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

Yields the configuration.

Block parameters

c<Hash>

The configuration parameters.

Examples

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

Returns

nil

:api: public

Yields:



41
42
43
44
# File 'lib/messagebird/config.rb', line 41

def use
  yield configuration
  nil
end