module VzaarApi::Lib::HasAttributes
Public Class Methods
new(attrs = {})
click to toggle source
Calls superclass method
# File lib/vzaar_api/lib/has_attributes.rb, line 28 def initialize(attrs = {}) self.class::ATTR_READERS.each do |attr| instance_variable_set("@#{attr}", attrs[attr]) end self.class::ATTR_ACCESSORS.each do |attr| instance_variable_set("@#{attr}", attrs[attr]) end super end
prepended(klass)
click to toggle source
# File lib/vzaar_api/lib/has_attributes.rb, line 5 def self.prepended(klass) klass::ATTR_READERS.each do |attr| klass.send :attr_reader, attr end unless defined? klass::ATTR_ACCESSORS klass.const_set 'ATTR_ACCESSORS', [].freeze end klass::ATTR_ACCESSORS.each do |attr| klass.send :attr_accessor, attr klass.send(:define_method, "#{attr}=") do |val| if self.changes[attr] self.changes[attr][1] = val else self.changes[attr] = [self.send(attr), val] end val end end end
Private Instance Methods
update_from_attributes(attrs = {})
click to toggle source
Calls superclass method
# File lib/vzaar_api/lib/has_attributes.rb, line 40 def update_from_attributes(attrs = {}) attrs.each do |attr, val| instance_variable_set("@#{attr}", attrs[attr]) end super end