Module: Observed::Configurable::ClassMethods

Defined in:
lib/observed/configurable.rb

Instance Method Summary collapse

Instance Method Details

#attribute(name, options = {}) ⇒ Object

Parameters:

  • name (String|Symbol)


34
35
36
37
38
39
40
41
42
# 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) ⇒ Object



52
53
54
# File 'lib/observed/configurable.rb', line 52

def create(args)
  self.new(args)
end

#default(args) ⇒ Object



44
45
46
# File 'lib/observed/configurable.rb', line 44

def default(args)
  @defaults = defaults.merge(args)
end

#defaultsObject



48
49
50
# File 'lib/observed/configurable.rb', line 48

def defaults
  @defaults ||= {}
end

#inherited(klass) ⇒ Object

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



57
58
59
60
# File 'lib/observed/configurable.rb', line 57

def inherited(klass)
  super if defined? super
  klass.default defaults
end