Module: Observed::Configurable::ClassMethods
- Defined in:
- lib/observed/configurable.rb
Instance Method Summary collapse
- #attribute(name, options = {}) ⇒ Object
- #create(args) ⇒ Object
- #default(args) ⇒ Object
- #defaults ⇒ Object
-
#inherited(klass) ⇒ Object
Inherits the default values stored in @defaults to the sub-class.
Instance Method Details
#attribute(name, options = {}) ⇒ Object
34 35 36 37 38 39 40 41 42 |
# File 'lib/observed/configurable.rb', line 34 def attribute(name, ={}) unless instance_methods.include? name.intern define_method(name) do get_attribute_value(name) || fail_for_not_configured_parameter(name) end end default_value = && [: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 |
#defaults ⇒ Object
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 |