class AccessPointList

Public Class Methods

new(cli_client = WpaCli.new) click to toggle source

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.

# File lib/wpa_cli_web/access_point_list.rb, line 7
def initialize(cli_client = WpaCli.new)
  @access_points = cli_client.scan_results
end

Public Instance Methods

access_points() click to toggle source
# File lib/wpa_cli_web/access_point_list.rb, line 11
def access_points
  strongest_unique_ssids_sorted_alphabetically
end
access_points_grouped_by_ssid() click to toggle source
# 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_ssid() click to toggle source
# 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_groups() click to toggle source
# 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_ssids() click to toggle source
# 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_alphabetically() click to toggle source
# 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