Class: Depository::Model
- Inherits:
-
Object
- Object
- Depository::Model
- Defined in:
- lib/depository/model.rb
Class Method Summary collapse
Instance Method Summary collapse
- #==(other) ⇒ Object
- #get(attr) ⇒ Object
-
#initialize(attrs = {}) ⇒ Model
constructor
A new instance of Model.
- #set(attr, value = nil) ⇒ Object
- #to_hash ⇒ Object
Constructor Details
#initialize(attrs = {}) ⇒ Model
Returns a new instance of Model.
26 27 28 29 |
# File 'lib/depository/model.rb', line 26 def initialize(attrs = {}) set(attrs) _defaults.each { |key, val| set(key, val) if !get(key) } end |
Class Method Details
._defaults ⇒ Object
21 22 23 |
# File 'lib/depository/model.rb', line 21 def _defaults @_defaults ||= {} end |
._fields ⇒ Object
13 14 15 |
# File 'lib/depository/model.rb', line 13 def _fields @_fields ||= [] end |
.defaults(defaults) ⇒ Object
17 18 19 |
# File 'lib/depository/model.rb', line 17 def defaults(defaults) self._defaults = defaults end |
.fields(*fields) ⇒ Object
8 9 10 11 |
# File 'lib/depository/model.rb', line 8 def fields(*fields) attr_accessor *fields self._fields = fields end |
Instance Method Details
#==(other) ⇒ Object
51 52 53 |
# File 'lib/depository/model.rb', line 51 def ==(other) other.is_a?(self.class) && other.to_hash == to_hash end |
#get(attr) ⇒ Object
37 38 39 |
# File 'lib/depository/model.rb', line 37 def get(attr) instance_variable_get(:"@#{attr}") end |
#set(attr, value = nil) ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/depository/model.rb', line 41 def set(attr, value = nil) if attr.is_a?(Hash) attr.each { |key, value| set(key, value) } else public_send(:"#{attr}=", value) end return self end |
#to_hash ⇒ Object
31 32 33 34 35 |
# File 'lib/depository/model.rb', line 31 def to_hash _fields.reduce({}) do |acc, field| acc.merge(field => get(field)) end end |