Module: Configuration

Included in:
ShareMeowClient
Defined in:
lib/helpers/configuration.rb

Overview

Configuration Helper: viget.com/extend/easy-gem-configuration-variables-with-defaults

Usage Example:

require 'helpers/configuration'
module MyGem
  extend Configuration

  define_setting :access_token
  define_setting :favorite_liquid, 'apple juice'
end

# config/initializers/my_gem.rb
MyGem.configuration do |config|
  config.access_token = 'token'
  config.favorite_liquid = 'gluten free apple juice'
end

Instance Method Summary collapse

Instance Method Details

#configuration {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:

  • _self (Configuration)

    the object that the method was called on



19
20
21
# File 'lib/helpers/configuration.rb', line 19

def configuration
  yield self
end

#define_setting(name, default = nil) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/helpers/configuration.rb', line 23

def define_setting(name, default = nil)
  class_variable_set("@@#{name}", default)

  define_class_method "#{name}=" do |value|
    class_variable_set("@@#{name}", value)
  end

  define_class_method name do
    value = class_variable_get("@@#{name}")
    raise "#{self}.#{name} was not set. Please set it in your #{self} initializer." if value.nil?
    value
  end
end