class Depository::Model

Public Class Methods

_defaults() click to toggle source
# File lib/depository/model.rb, line 21
def _defaults
  @_defaults ||= {}
end
_fields() click to toggle source
# File lib/depository/model.rb, line 13
def _fields
  @_fields ||= []
end
defaults(defaults) click to toggle source
# File lib/depository/model.rb, line 17
def defaults(defaults)
  self._defaults = defaults
end
fields(*fields) click to toggle source
# File lib/depository/model.rb, line 8
def fields(*fields)
  attr_accessor *fields
  self._fields = fields
end
new(attrs = {}) click to toggle source
# File lib/depository/model.rb, line 26
def initialize(attrs = {})
  set(attrs)
  _defaults.each { |key, val| set(key, val) if !get(key) }
end

Public Instance Methods

==(other) click to toggle source
# File lib/depository/model.rb, line 51
def ==(other)
  other.is_a?(self.class) && other.to_hash == to_hash
end
get(attr) click to toggle source
# File lib/depository/model.rb, line 37
def get(attr)
  instance_variable_get(:"@#{attr}")
end
set(attr, value = nil) click to toggle source
# 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() click to toggle source
# File lib/depository/model.rb, line 31
def to_hash
  _fields.reduce({}) do |acc, field|
    acc.merge(field => get(field))
  end
end

Private Instance Methods

_defaults() click to toggle source
# File lib/depository/model.rb, line 61
def _defaults
  self.class._defaults
end
_fields() click to toggle source
# File lib/depository/model.rb, line 57
def _fields
  self.class._fields
end