Sha256: fb7cbe294720edf8a65642c0790e909e4aeeb6a5b0e422586474b45f9a723de4

Contents?: true

Size: 888 Bytes

Versions: 3

Compression:

Stored size: 888 Bytes

Contents

module PatronusFati
  module DataModels
    class Ssid
      include CommonState

      attr_accessor :local_attributes

      LOCAL_ATTRIBUTE_KEYS = [
        :beacon_info, :beacon_rate, :cloaked, :crypt_set, :essid, :max_rate
      ].freeze

      def self.current_expiration_threshold
        Time.now.to_i - SSID_EXPIRATION
      end

      def initialize(essid)
        super
        self.local_attributes = {
          cloaked: essid.nil? || essid.empty?,
          essid: essid
        }
      end

      def full_state
        { last_visible: presence.last_visible }.merge(local_attributes)
      end

      def update(attrs)
        attrs.each do |k, v|
          next unless LOCAL_ATTRIBUTE_KEYS.include?(k)
          next if v.nil? || local_attributes[k] == v

          set_sync_flag(:dirtyAttributes)
          local_attributes[k] = v
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
patronus_fati-1.3.8 lib/patronus_fati/data_models/ssid.rb
patronus_fati-1.3.7 lib/patronus_fati/data_models/ssid.rb
patronus_fati-1.3.6 lib/patronus_fati/data_models/ssid.rb