Module: ShallowAttributes::ClassMethods Abstract
- Defined in:
- lib/shallow_attributes/class_methods.rb
Overview
This module is abstract.
Abstract class for value classes. Provides some helper methods for working with class methods.
Instance Method Summary collapse
-
#attribute(name, type, options = {}) ⇒ Object
Define attribute with specific type and default value for current class.
-
#attributes ⇒ Hash
Returns all class attributes.
-
#default_values ⇒ Hash
Returns hash which contain default values for each attribute.
Instance Method Details
#attribute(name, type, options = {}) ⇒ Object
Define attribute with specific type and default value for current class.
66 67 68 69 70 71 72 73 74 |
# File 'lib/shallow_attributes/class_methods.rb', line 66 def attribute(name, type, = {}) [:default] ||= [] if type == Array @default_values ||= {} @default_values[name] = .delete(:default) initialize_setter(name, type, ) initialize_getter(name) end |
#attributes ⇒ Hash
Returns all class attributes.
40 41 42 |
# File 'lib/shallow_attributes/class_methods.rb', line 40 def attributes default_values.keys end |
#default_values ⇒ Hash
Returns hash which contain default values for each attribute
16 17 18 19 20 21 22 |
# File 'lib/shallow_attributes/class_methods.rb', line 16 def default_values if superclass.respond_to?(:default_values) @default_values.merge!(superclass.default_values) { |_, v, _| v } else @default_values end end |