Class: AccessPointList

Inherits:
Object
  • Object
show all
Includes:
WpaCliRuby
Defined in:
lib/wpa_cli_web/access_point_list.rb

Instance Method Summary collapse

Constructor Details

#initialize(cli_client = WpaCli.new) ⇒ AccessPointList

Initialize with scan results. This assumes that cli_client.scan() has been called elsewhere. When this application is run with the wifi interface in AP mode, calling scan() is destructive.



7
8
9
# File 'lib/wpa_cli_web/access_point_list.rb', line 7

def initialize(cli_client = WpaCli.new)
  @access_points = cli_client.scan_results
end

Instance Method Details

#access_pointsObject



11
12
13
# File 'lib/wpa_cli_web/access_point_list.rb', line 11

def access_points
  strongest_unique_ssids_sorted_alphabetically
end

#access_points_grouped_by_ssidObject



30
31
32
# File 'lib/wpa_cli_web/access_point_list.rb', line 30

def access_points_grouped_by_ssid
  access_points_with_an_ssid.group_by {|network| network.ssid}
end

#access_points_with_an_ssidObject



34
35
36
# File 'lib/wpa_cli_web/access_point_list.rb', line 34

def access_points_with_an_ssid
  @access_points.reject { |network| network.ssid.nil? }
end

#network_groupsObject



26
27
28
# File 'lib/wpa_cli_web/access_point_list.rb', line 26

def network_groups
  access_points_grouped_by_ssid.map {|ssid, network_group| network_group}
end

#strongest_unique_ssidsObject



20
21
22
23
24
# File 'lib/wpa_cli_web/access_point_list.rb', line 20

def strongest_unique_ssids
  network_groups.
    map {|network_group| network_group.sort_by { |network| network.signal_level}.reverse.take(1)}.
    flatten
end

#strongest_unique_ssids_sorted_alphabeticallyObject



15
16
17
18
# File 'lib/wpa_cli_web/access_point_list.rb', line 15

def strongest_unique_ssids_sorted_alphabetically
  strongest_unique_ssids.
    sort_by { |network| network.ssid.downcase }
end