class RubyWifiScanner::Scanner
Constants
- WifiInfo
Attributes
networks[R]
Public Class Methods
create(raw_scan=nil)
click to toggle source
# File lib/ruby_wifi_scanner/scanner.rb, line 7 def self.create(raw_scan=nil) case when osx? then OSXScanner.new(raw_scan) when linux? then LinuxScanner.new(raw_scan) end end
new(raw_scan = nil)
click to toggle source
# File lib/ruby_wifi_scanner/scanner.rb, line 25 def initialize(raw_scan = nil) @raw_scan = raw_scan || self.raw_scan @networks = parse(@raw_scan).sort_by { |w| -w.level } end
Private Class Methods
linux?()
click to toggle source
# File lib/ruby_wifi_scanner/scanner.rb, line 20 def self.linux? RUBY_PLATFORM =~ /linux/ end
osx?()
click to toggle source
# File lib/ruby_wifi_scanner/scanner.rb, line 15 def self.osx? RUBY_PLATFORM =~ /darwin/ end
Protected Instance Methods
parse()
click to toggle source
# File lib/ruby_wifi_scanner/scanner.rb, line 64 def parse raise NotImplemented end
raw_scan()
click to toggle source
# File lib/ruby_wifi_scanner/scanner.rb, line 68 def raw_scan raise NotImplemented end
Private Instance Methods
deep_scan()
click to toggle source
# File lib/ruby_wifi_scanner/scanner.rb, line 30 def deep_scan ssids = @networks.map(&:ssid).uniq @networks = [] ssids.each do |ssid| @networks += parse directed_scan ssid end end
print_fmt(freq: nil, **kargs)
click to toggle source
# File lib/ruby_wifi_scanner/scanner.rb, line 39 def print_fmt freq: nil, **kargs @networks.select do |n| if freq.nil? true else channel, _ = n.channel.split ?, if freq == '2' channel.to_i <= 14 else channel.to_i >= 32 && channel.to_i <= 73 end end end.map do |n| "#{n.rssi}\t#{n.level}\t#{n.channel}\t#{n.ssid}" end end
print_json()
click to toggle source
# File lib/ruby_wifi_scanner/scanner.rb, line 59 def print_json end