Class: WifiWand::Commands::OutputSupport
- Inherits:
-
Object
- Object
- WifiWand::Commands::OutputSupport
show all
- Includes:
- OutputFormatter
- Defined in:
- lib/wifi_wand/commands/output_support.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
#colorize_network_name, #colorize_status, #colorize_text, #colorize_values, #format_boolean_status, #format_internet_status, #format_object, #post_process, #post_processor, #status_line
Constructor Details
Returns a new instance of OutputSupport.
12
13
14
|
# File 'lib/wifi_wand/commands/output_support.rb', line 12
def initialize(cli)
@cli = cli
end
|
Instance Attribute Details
#cli ⇒ Object
Returns the value of attribute cli.
10
11
12
|
# File 'lib/wifi_wand/commands/output_support.rb', line 10
def cli
@cli
end
|
Instance Method Details
#available_networks_empty_message ⇒ Object
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/wifi_wand/commands/output_support.rb', line 46
def available_networks_empty_message
if cli.model.is_a?(WifiWand::Platforms::Mac::Model)
<<~MESSAGE.chomp
No visible networks were found.
On macOS 14+, this can mean the macOS helper application could not get usable
Location Services authorization for WiFi SSIDs.
MESSAGE
elsif cli.model.is_a?(WifiWand::Platforms::Ubuntu::Model)
<<~MESSAGE.chomp
No visible networks were found.
If you expect to see networks, try running `nmcli device wifi rescan` or check your hardware/drivers.
MESSAGE
else
'No visible networks were found.'
end
end
|
#display_width(text) ⇒ Object
42
43
44
|
# File 'lib/wifi_wand/commands/output_support.rb', line 42
def display_width(text)
strip_ansi(text).scan(/\X/).sum { |grapheme| grapheme_display_width(grapheme) }
end
|
#handle_output(data, human_readable_string_producer) ⇒ Object
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/wifi_wand/commands/output_support.rb', line 19
def handle_output(data, human_readable_string_producer)
if cli.interactive_mode
data
else
output = if cli.options.post_processor
post_process(data)
else
human_readable_string_producer.call
end
cli.out_stream.puts output unless output.to_s.empty?
end
end
|
#options ⇒ Object
17
|
# File 'lib/wifi_wand/commands/output_support.rb', line 17
def options = cli.options
|
#out_stream ⇒ Object
16
|
# File 'lib/wifi_wand/commands/output_support.rb', line 16
def out_stream = cli.out_stream
|
#status_progress_mode ⇒ Object
33
34
35
36
37
38
|
# File 'lib/wifi_wand/commands/output_support.rb', line 33
def status_progress_mode
return :none if cli.options.post_processor
return :none unless cli.out_stream.respond_to?(:tty?) && cli.out_stream.tty?
:inline
end
|
#strip_ansi(text) ⇒ Object
40
|
# File 'lib/wifi_wand/commands/output_support.rb', line 40
def strip_ansi(text) = text.to_s.gsub(/\e\[[\d;]*m/, '')
|