Sha256: d0e3d7340a8af3908e04a775b74087400aab33b0450df69fa283bc74b5df5cb8
Contents?: true
Size: 1.31 KB
Versions: 31
Compression:
Stored size: 1.31 KB
Contents
module PatronusFati::DataObservers class AccessPointObserver include DataMapper::Observer observe PatronusFati::DataModels::AccessPoint before :save do next unless self.valid? self.reported_online = active? @change_type = self.new? ? :new : :changed if @change_type == :changed dirty = self.dirty_attributes.map { |a| a.first.name }.map(&:to_s) dirty.select! { |k, _| full_state.keys.include?(k) || k == 'reported_online' } # If there weren't any meaningful changes, don't print out anything # after we save. if dirty.empty? @change_type = nil next end changes = dirty.map do |attr| clean = original_attributes[PatronusFati::DataModels::AccessPoint.properties[attr]] dirty = dirty_attributes[PatronusFati::DataModels::AccessPoint.properties[attr]] [attr, [clean, dirty]] end @change_list = Hash[changes] @change_list.delete('reported_online') end end after :save do next unless @change_type mac.update_cached_counts! PatronusFati.event_handler.event( :access_point, @change_type, self.full_state, @change_list || {} ) @change_type = nil @change_list = nil end end end
Version data entries
31 entries across 31 versions & 1 rubygems