Sha256: 7a78fb55f649b6e2a33cfd3fc71b230149ca0b87900289903c64825a6254c726
Contents?: true
Size: 1.39 KB
Versions: 22
Compression:
Stored size: 1.39 KB
Contents
module KalibroClient module Entities module Miscellaneous class Base def initialize(attributes={}) attributes.each { |field, value| send("#{field}=", value) if self.class.is_valid?(field) } end include HashConverters def to_hash(options={}) hash = Hash.new excepts = options[:except].nil? ? [] : options[:except] fields.each do |field| hash = field_to_hash(field).merge(hash) if !excepts.include?(field) end hash end def self.to_object value value.kind_of?(Hash) ? new(value) : value end def ==(another) unless self.class == another.class return false end self.variable_names.each do |name| next if name == "created_at" or name == "updated_at" unless self.send("#{name}") == another.send("#{name}") then return false end end return true end protected def fields instance_variable_names.each.collect { |variable| variable.to_s.sub(/@/, '') } end def instance_variable_names instance_variables.map { |var| var.to_s } end def variable_names instance_variable_names.each.collect { |variable| variable.to_s.sub(/@/, '') } end end end end end
Version data entries
22 entries across 22 versions & 1 rubygems