module Observed::Configurable::ClassMethods

Public Instance Methods

attribute(name, options={}) click to toggle source

@param [String|Symbol] name

# File lib/observed/configurable.rb, line 34
def attribute(name, options={})
  unless instance_methods.include? name.intern
    define_method(name) do
      get_attribute_value(name) || fail_for_not_configured_parameter(name)
    end
  end
  default_value =  options && options[:default]
  default name => default_value if default_value
end
create(args) click to toggle source
# File lib/observed/configurable.rb, line 52
def create(args)
  self.new(args)
end
default(args) click to toggle source
# File lib/observed/configurable.rb, line 44
def default(args)
  @defaults = defaults.merge(args)
end
defaults() click to toggle source
# File lib/observed/configurable.rb, line 48
def defaults
  @defaults ||= {}
end
inherited(klass) click to toggle source

Inherits the default values stored in @defaults to the sub-class

Calls superclass method
# File lib/observed/configurable.rb, line 57
def inherited(klass)
  super if defined? super
  klass.default defaults
end