class Realogy::Entity
Public Class Methods
triage(hash)
click to toggle source
# File lib/realogy/app/models/realogy/entity.rb, line 12 def self.triage hash @object = self.find_or_initialize_by(entity_id: [hash["entityId"], hash["id"]].compact.first) @object.last_update_on = hash["lastUpdateOn"].to_s.to_datetime @object.populate if @object.needs_updating? end
Public Instance Methods
dig_for_array(*path)
click to toggle source
# File lib/realogy/app/models/realogy/entity.rb, line 25 def dig_for_array(*path) return nil unless (json = self.data).is_a?(Hash) (v = json.dig(*path)).is_a?(Array) ? v : nil end
dig_for_boolean(*path)
click to toggle source
# File lib/realogy/app/models/realogy/entity.rb, line 30 def dig_for_boolean(*path) return nil unless (json = self.data).is_a?(Hash) (v = json.dig(*path)).to_s.upcase.eql?("TRUE") ? true : nil end
dig_for_datetime(*path)
click to toggle source
# File lib/realogy/app/models/realogy/entity.rb, line 35 def dig_for_datetime(*path) self.data.dig(*path).to_datetime rescue nil end
dig_for_decimal(*path)
click to toggle source
# File lib/realogy/app/models/realogy/entity.rb, line 39 def dig_for_decimal(*path) return nil unless (json = self.data).is_a?(Hash) (v = json.dig(*path).to_f) != 0.0 ? v : nil end
dig_for_hash(*path)
click to toggle source
# File lib/realogy/app/models/realogy/entity.rb, line 44 def dig_for_hash(*path) return nil unless (json = self.data).is_a?(Hash) (v = json.dig(*path)).is_a?(Hash) ? v : nil end
dig_for_integer(*path)
click to toggle source
# File lib/realogy/app/models/realogy/entity.rb, line 49 def dig_for_integer(*path) return nil unless (json = self.data).is_a?(Hash) (v = json.dig(*path).to_i) != 0 ? v : nil end
dig_for_string(*path)
click to toggle source
# File lib/realogy/app/models/realogy/entity.rb, line 54 def dig_for_string(*path) return nil unless (json = self.data).is_a?(Hash) (v = json.dig(*path)).to_s.present? ? (v.eql?("0") ? nil : v) : nil end
needs_updating?()
click to toggle source
# File lib/realogy/app/models/realogy/entity.rb, line 8 def needs_updating? self.new_record? || self.last_update_on_changed? || self.data.blank? end
populate()
click to toggle source
# File lib/realogy/app/models/realogy/entity.rb, line 18 def populate call = ["get_", self.class.to_s.downcase.split("::").last, "_by_id"].join.to_sym result = Realogy::DataSync.client.__send__(call, self.entity_id) self.data = result unless result.blank? self.save if self.changed? end