Class: WifiWand::Platforms::Mac::StatusQueries
- Inherits:
-
Object
- Object
- WifiWand::Platforms::Mac::StatusQueries
- Includes:
- StringPredicates
- Defined in:
- lib/wifi_wand/platforms/mac/status_queries.rb
Constant Summary collapse
- NO_CONNECTED_NETWORK =
Object.new.freeze
Instance Method Summary collapse
-
#initialize(helper_client_provider:, command_runner:, system_profiler_wifi_data_reader:, system_profiler_wifi_data_cache_runner:, wifi_interface_cache_reader:, wifi_interface_cache_writer:, wifi_interface_probe:, system_network_info_provider:, status_deadline_factory:, status_timeout_calculator:) ⇒ StatusQueries
constructor
A new instance of StatusQueries.
- #status_network_identity(timeout_in_secs: nil) ⇒ Object
- #status_wifi_on?(timeout_in_secs: nil) ⇒ Boolean
Methods included from StringPredicates
string_nil_or_blank?, string_nil_or_empty?
Constructor Details
#initialize(helper_client_provider:, command_runner:, system_profiler_wifi_data_reader:, system_profiler_wifi_data_cache_runner:, wifi_interface_cache_reader:, wifi_interface_cache_writer:, wifi_interface_probe:, system_network_info_provider:, status_deadline_factory:, status_timeout_calculator:) ⇒ StatusQueries
Returns a new instance of StatusQueries.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/wifi_wand/platforms/mac/status_queries.rb', line 19 def initialize( helper_client_provider:, command_runner:, system_profiler_wifi_data_reader:, system_profiler_wifi_data_cache_runner:, wifi_interface_cache_reader:, wifi_interface_cache_writer:, wifi_interface_probe:, system_network_info_provider:, status_deadline_factory:, status_timeout_calculator: ) @helper_client_provider = helper_client_provider @command_runner = command_runner @system_profiler_wifi_data_reader = system_profiler_wifi_data_reader @system_profiler_wifi_data_cache_runner = system_profiler_wifi_data_cache_runner @wifi_interface_cache_reader = wifi_interface_cache_reader @wifi_interface_cache_writer = wifi_interface_cache_writer @wifi_interface_probe = wifi_interface_probe @system_network_info_provider = system_network_info_provider @status_deadline_factory = status_deadline_factory @status_timeout_calculator = status_timeout_calculator end |
Instance Method Details
#status_network_identity(timeout_in_secs: nil) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/wifi_wand/platforms/mac/status_queries.rb', line 43 def status_network_identity(timeout_in_secs: nil) deadline = status_deadline(timeout_in_secs) with_system_profiler_wifi_data_cache_scope do return disconnected_identity unless wifi_on_before_deadline?(deadline) helper_result = helper_client.connected_network_name( timeout_seconds: status_timeout_for(deadline) ) helper_ssid = helper_result.payload if helper_ssid && !placeholder_network_name?(helper_ssid) return { connected: true, network_name: helper_ssid, signal_quality: helper_result.signal_quality } end return disconnected_identity if helper_result.not_connected? fast_network_name = status_network_name_using_fast_commands(deadline) return disconnected_identity if no_connected_network?(fast_network_name) if fast_network_name return { connected: true, network_name: fast_network_name, signal_quality: nil } end status_network_identity_from_system_profiler_wifi_data(deadline) end end |
#status_wifi_on?(timeout_in_secs: nil) ⇒ Boolean
72 73 74 75 76 |
# File 'lib/wifi_wand/platforms/mac/status_queries.rb', line 72 def status_wifi_on?(timeout_in_secs: nil) deadline = status_deadline(timeout_in_secs) wifi_on_before_deadline?(deadline) end |