module Bank::Model
Public Class Methods
included(base)
click to toggle source
# File lib/bank/model.rb, line 24 def self.included(base) base.define_singleton_method(:config) do @_config ||= Bank::Model::Config.new(self) end end
new(attrs = {})
click to toggle source
# File lib/bank/model.rb, line 30 def initialize(attrs = {}) set(attrs) _defaults.reject { |key, _| get(key) }.each { |key, val| set(key, val) } end
Public Instance Methods
==(other)
click to toggle source
# File lib/bank/model.rb, line 55 def ==(other) other.is_a?(self.class) && other.to_hash == to_hash end
get(attr)
click to toggle source
# File lib/bank/model.rb, line 41 def get(attr) instance_variable_get(:"@#{attr}") end
set(attr, value = nil)
click to toggle source
# File lib/bank/model.rb, line 45 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/bank/model.rb, line 35 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/bank/model.rb, line 65 def _defaults self.class.config._defaults end
_fields()
click to toggle source
# File lib/bank/model.rb, line 61 def _fields self.class.config._fields end