Class: WifiWand::Platforms::Mac::CurrentNetworkDetails

Inherits:
Object
  • Object
show all
Defined in:
lib/wifi_wand/platforms/mac/current_network_details.rb

Instance Method Summary collapse

Constructor Details

#initialize(system_profiler_wifi_data_reader:, system_profiler_wifi_data_cache_runner:, connected_network_name_reader:, wifi_interface_provider:, security_normalizer:) ⇒ CurrentNetworkDetails

Returns a new instance of CurrentNetworkDetails.



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/wifi_wand/platforms/mac/current_network_details.rb', line 10

def initialize(
  system_profiler_wifi_data_reader:,
  system_profiler_wifi_data_cache_runner:,
  connected_network_name_reader:,
  wifi_interface_provider:,
  security_normalizer:
)
  @system_profiler_wifi_data_reader = system_profiler_wifi_data_reader
  @system_profiler_wifi_data_cache_runner = system_profiler_wifi_data_cache_runner
  @connected_network_name_reader = connected_network_name_reader
  @wifi_interface_provider = wifi_interface_provider
  @security_normalizer = security_normalizer
end

Instance Method Details

#connection_security_typeObject



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/wifi_wand/platforms/mac/current_network_details.rb', line 24

def connection_security_type
  with_system_profiler_wifi_data_cache_scope do
    network_name = connected_network_name
    return nil unless network_name

    security_info = system_profiler_wifi_data_navigator.network_security(wifi_interface, network_name)
    return nil if security_info.nil?

    normalized_security_type(security_info)
  end
end

#network_hidden?Boolean

Returns:

  • (Boolean)


36
37
38
39
40
41
42
43
# File 'lib/wifi_wand/platforms/mac/current_network_details.rb', line 36

def network_hidden?
  with_system_profiler_wifi_data_cache_scope do
    network_name = connected_network_name
    return false unless network_name

    system_profiler_wifi_data_navigator.network_hidden?(wifi_interface, network_name)
  end
end

#signal_qualityObject



45
46
47
48
49
50
51
52
53
# File 'lib/wifi_wand/platforms/mac/current_network_details.rb', line 45

def signal_quality
  with_system_profiler_wifi_data_cache_scope do
    return nil unless connected_network_name

    iface_data = system_profiler_wifi_data_navigator.interface_data(wifi_interface)
    dbm = SystemProfilerWifiDataNavigator.current_network_signal_dbm(iface_data)
    dbm ? SignalQuality.new(value: dbm, unit: :dbm) : nil
  end
end