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
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 |