module Whowas::Configuration

This is just a simple way to allow gem users to define their own variables on whatever this module extends – mainly the Whowas module itself.

see the following article: www.viget.com/articles/easy-gem-configuration-variables-with-defaults

Public Instance Methods

configuration() { |self| ... } click to toggle source
# File lib/whowas/configuration.rb, line 8
def configuration
  yield self
end
define_setting(name, default = nil) click to toggle source
# File lib/whowas/configuration.rb, line 12
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

Private Instance Methods

define_class_method(name, &block) click to toggle source
# File lib/whowas/configuration.rb, line 26
def define_class_method(name, &block)
  (class << self; self; end).instance_eval do
    define_method name, &block
  end
end