module Configuration

> Configuration Helper Module

Public Instance Methods

define_setting(name, default = nil) click to toggle source
# File lib/supermarket_sync/helpers/configuration.rb, line 24
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
    class_variable_get("@@#{name}")
  end
end
delete_setting(name) click to toggle source
# File lib/supermarket_sync/helpers/configuration.rb, line 36
def delete_setting(name)
  remove_class_variable("@@#{name}")

  delete_class_method(name)
rescue NameError # => Handle Non-Existent Settings
  nil
end
setup() { |self| ... } click to toggle source

> Provides a method to configure an Application

> Example:

SupermarketSync::Config.setup do |cfg|
  cfg.config_file = 'abc.json'
  cfg.app_name = 'GemBase'
end
# File lib/supermarket_sync/helpers/configuration.rb, line 20
def setup
  yield self
end

Private Instance Methods

define_class_method(name, &block) click to toggle source
# File lib/supermarket_sync/helpers/configuration.rb, line 46
def define_class_method(name, &block)
  (class << self; self; end).instance_eval do
    define_method name, &block
  end
end
delete_class_method(name) click to toggle source
# File lib/supermarket_sync/helpers/configuration.rb, line 52
def delete_class_method(name)
  (class << self; self; end).instance_eval do
    undef_method name
  end
end