Class: PatronusFati::DataModels::Ssid

Inherits:
Object
  • Object
show all
Includes:
CommonState
Defined in:
lib/patronus_fati/data_models/ssid.rb

Constant Summary collapse

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from CommonState

#active?, #data_dirty?, #diagnostic_data, #dirty?, included, #mark_synced, #new?, #set_sync_flag, #status_dirty?, #sync_flag?

Constructor Details

#initialize(essid) ⇒ Ssid

Returns a new instance of Ssid.



16
17
18
19
20
21
22
# File 'lib/patronus_fati/data_models/ssid.rb', line 16

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

Instance Attribute Details

#local_attributesvoid

Returns the value of attribute local_attributes.



6
7
8
# File 'lib/patronus_fati/data_models/ssid.rb', line 6

def local_attributes
  @local_attributes
end

Class Method Details

.current_expiration_thresholdvoid



12
13
14
# File 'lib/patronus_fati/data_models/ssid.rb', line 12

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

Instance Method Details

#full_statevoid



24
25
26
# File 'lib/patronus_fati/data_models/ssid.rb', line 24

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

#update(attrs) ⇒ void



28
29
30
31
32
33
34
35
36
# File 'lib/patronus_fati/data_models/ssid.rb', line 28

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