wifi-wand 2.14.0 → 2.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3c9b7b8e153c2765c68823302d56c2c4a3a3176a430603ab79a31849b7f606bc
4
- data.tar.gz: 2eb10109cc4edeab46652f92c4e79afdadbff9584da7f98603442d0c550da128
3
+ metadata.gz: 51d32000847efd2e81288f34905ef2622d875d460b3f4bd3f3a823a7bfc53ff5
4
+ data.tar.gz: 9a9bd05cac4003f148387c877a2e47cf37cea9fdd793cc848e3e5b01a6bc0887
5
5
  SHA512:
6
- metadata.gz: 4e6d207393f4ea32b89b3b731023504afdc8bb60b13a3475e2cb27677656c511b4968a73fecb29c9731e9c545659858ea174bcb474b8736958fdb6499bdaef00
7
- data.tar.gz: e3189d29f2059a639347acd1338cb3ba45f251aed82fd85de77b4a1a566e5a2038c9b0bb9ad692e2da3d1bcaff08ac3838c0c1665c895380d3778f706c7a5abd
6
+ metadata.gz: 6c82d035c66e289ff335f774313fde6a9bfec1bf403dc4f71f375d2ea825ebb12b0c265e27ee61361455466606ccfb898c9ab7588efde854a909f9bc1a023224
7
+ data.tar.gz: f75163a1ec497cf8010ddd28306cd4d1c621042c4af6e6835d55aeaad20f2751d8ad6c9f479c748fe26c65259d3c19015200612aa297349db3b59d4df0dcfb16
data/README.md CHANGED
@@ -29,10 +29,7 @@ output at the time of this writing:
29
29
 
30
30
  ```
31
31
  $ wifi-wand -h
32
-
33
- Syntax is: exe/wifi-wand [options] command [command_options]
34
-
35
- Command Line Switches: [wifi-wand version 2.13.0 at https://github.com/keithrbennett/wifiwand]
32
+ Command Line Switches: [wifi-wand version 2.14.0 at https://github.com/keithrbennett/wifiwand]
36
33
 
37
34
  -o {i,j,k,p,y} - outputs data in inspect, JSON, pretty JSON, puts, or YAML format when not in shell mode
38
35
  -p wifi_port_name - override automatic detection of port name with this name
@@ -49,29 +46,24 @@ d[isconnect] - disconnects from current network, does not turn off
49
46
  f[orget] name1 [..name_n] - removes network-name(s) from the preferred networks list
50
47
  h[elp] - prints this help
51
48
  i[nfo] - a hash of wifi-related information
52
- l[s_avail_nets] - details about available networks
49
+ l[s_avail_nets] - details about available networks in descending order of signal strength
53
50
  na[meservers] - nameservers: 'show' or no arg to show, 'clear' to clear, or IP addresses to set, e.g. '9.9.9.9 8.8.8.8'
54
51
  ne[twork_name] - name (SSID) of currently connected network
55
52
  on - turns wifi on
56
53
  of[f] - turns wifi off
57
54
  pa[ssword] network-name - password for preferred network-name
58
- pr[ef_nets] - preferred (not necessarily available) networks
55
+ pr[ef_nets] - preferred (saved) networks
59
56
  q[uit] - exits this program (interactive shell mode only) (see also 'x')
60
57
  ro[pen] - open resource ('ipl' (IP Location), 'ipw' (What is My IP), 'spe' (Speed Test), 'this' (wifi-wand home page))
61
58
  t[ill] - returns when the desired Internet connection state is true. Options:
62
59
  1) 'on'/:on, 'off'/:off, 'conn'/:conn, or 'disc'/:disc
63
- 2) wait interval, in seconds (optional, defaults to 0.5 seconds)
60
+ 2) wait interval between tests, in seconds (optional, defaults to 0.5 seconds)
64
61
  w[ifi_on] - is the wifi on?
65
62
  x[it] - exits this program (interactive shell mode only) (see also 'q')
66
63
 
67
64
  When in interactive shell mode:
68
65
  * remember to quote string literals.
69
66
  * for pry commands, use prefix `%`.
70
-
71
-
72
- When in interactive shell mode:
73
- * use quotes for string parameters such as method names.
74
- * for pry commands, use prefix `%`.
75
67
  ```
76
68
 
77
69
  Internally, it uses several Mac command line utilities to interact with the
@@ -1,3 +1,10 @@
1
+ ## v2.15.0
2
+
3
+ * Allow using symbols in the 'nameservers' subcommands.
4
+ * Modify `forget` method to allow passing a single array of names, as returned by `pr.grep`, for example.
5
+ * Output duration of http get's.
6
+
7
+
1
8
  ## v2.14.0
2
9
 
3
10
  * `ls_avail_nets` command now outputs access points in signal strength order.
@@ -67,20 +67,22 @@ co[nnect] network-name - turns wifi on, connects to network-name
67
67
  cy[cle] - turns wifi off, then on, preserving network selection
68
68
  d[isconnect] - disconnects from current network, does not turn off wifi
69
69
  f[orget] name1 [..name_n] - removes network-name(s) from the preferred networks list
70
+ in interactive mode, can be a single array of names, e.g. returned by `pref_nets`
70
71
  h[elp] - prints this help
71
72
  i[nfo] - a hash of wifi-related information
72
- l[s_avail_nets] - details about available networks
73
- na[meservers] - nameservers: 'show' or no arg to show, 'clear' to clear, or IP addresses to set, e.g. '9.9.9.9 8.8.8.8'
73
+ l[s_avail_nets] - details about available networks, in descending order of signal strength
74
+ na[meservers] - nameservers: 'show' or no arg to show, 'clear' to clear,
75
+ or IP addresses to set, e.g. '9.9.9.9 8.8.8.8'
74
76
  ne[twork_name] - name (SSID) of currently connected network
75
77
  on - turns wifi on
76
78
  of[f] - turns wifi off
77
79
  pa[ssword] network-name - password for preferred network-name
78
- pr[ef_nets] - preferred (not necessarily available) networks
80
+ pr[ef_nets] - preferred (saved) networks
79
81
  q[uit] - exits this program (interactive shell mode only) (see also 'x')
80
82
  ro[pen] - open resource (#{OPEN_RESOURCES.help_string})
81
83
  t[ill] - returns when the desired Internet connection state is true. Options:
82
84
  1) 'on'/:on, 'off'/:off, 'conn'/:conn, or 'disc'/:disc
83
- 2) wait interval, in seconds (optional, defaults to 0.5 seconds)
85
+ 2) wait interval between tests, in seconds (optional, defaults to 0.5 seconds)
84
86
  w[ifi_on] - is the wifi on?
85
87
  x[it] - exits this program (interactive shell mode only) (see also 'q')
86
88
 
@@ -330,9 +332,9 @@ When in interactive shell mode:
330
332
  # Performs nameserver functionality.
331
333
  # @param subcommand 'get' or no arg to get, 'clear' to clear, and an array of IP addresses to set
332
334
  def cmd_na(*args)
333
- subcommand = if [[], ['get']].include?(args)
335
+ subcommand = if args.empty? || args.first.to_sym == :get
334
336
  :get
335
- elsif args == ['clear']
337
+ elsif args.first.to_sym == :clear
336
338
  :clear
337
339
  else
338
340
  :put
@@ -45,14 +45,14 @@ class BaseModel
45
45
 
46
46
  def run_os_command(command, raise_on_error = true)
47
47
 
48
- if @verbose_mode
48
+ if verbose_mode
49
49
  puts CommandOutputFormatter.command_attempt_as_string(command)
50
50
  end
51
51
 
52
52
  start_time = Time.now
53
53
  output = `#{command} 2>&1` # join stderr with stdout
54
54
 
55
- if @verbose_mode
55
+ if verbose_mode
56
56
  puts "Duration: #{'%.4f' % [Time.now - start_time]} seconds"
57
57
  puts CommandOutputFormatter.command_result_as_string(output)
58
58
  end
@@ -78,7 +78,7 @@ class BaseModel
78
78
  # First pass to fail quickly if name resolving does not work.
79
79
  test_using_dig = -> do
80
80
  domains = %w(google.com baidu.com)
81
- puts "Calling dig on domains #{domains}..." if @verbose_mode
81
+ puts "Calling dig on domains #{domains}..." if verbose_mode
82
82
 
83
83
  threads = domains.map do |domain|
84
84
  Thread.new do
@@ -90,13 +90,13 @@ class BaseModel
90
90
  threads.each(&:join)
91
91
  values = threads.map(&:value)
92
92
  success = values.include?(true)
93
- puts "Results of dig: success == #{success}, values were #{values}." if @verbose_mode
93
+ puts "Results of dig: success == #{success}, values were #{values}." if verbose_mode
94
94
  success
95
95
  end
96
96
 
97
97
  test_using_http_get = -> do
98
98
  test_sites = %w{https://www.google.com http://baidu.com}
99
- puts "Calling HTTP.get on sites #{test_sites}..." if @verbose_mode
99
+ puts "Calling HTTP.get on sites #{test_sites}..." if verbose_mode
100
100
 
101
101
  threads = test_sites.map do |site|
102
102
  Thread.new do
@@ -105,8 +105,11 @@ class BaseModel
105
105
 
106
106
  begin
107
107
  Net::HTTP.start(url.host) do |http|
108
+ start = Time.now
108
109
  http.read_timeout = 3 # seconds
109
110
  http.get('.')
111
+ duration = Time.now - start
112
+ puts "Finished HTTP get #{url.host} in #{duration} seconds" if verbose_mode
110
113
  end
111
114
  rescue
112
115
  success = false
@@ -120,7 +123,7 @@ class BaseModel
120
123
  values = threads.map(&:value)
121
124
  success = values.include?(true)
122
125
 
123
- puts "Results of HTTP.get: success == #{success}, values were #{values}." if @verbose_mode
126
+ puts "Results of HTTP.get: success == #{success}, values were #{values}." if verbose_mode
124
127
  success
125
128
  end
126
129
 
@@ -177,8 +180,10 @@ class BaseModel
177
180
 
178
181
  # Removes the specified network(s) from the preferred network list.
179
182
  # @param network_names names of networks to remove; may be empty or contain nonexistent networks
183
+ # can be a single arg which is an array of names or 1 name string per arg
180
184
  # @return names of the networks that were removed (excludes non-preexisting networks)
181
185
  def remove_preferred_networks(*network_names)
186
+ network_names = network_names.first if network_names.first.is_a?(Array) && network_names.size == 1
182
187
  networks_to_remove = network_names & preferred_networks # exclude any nonexistent networks
183
188
  networks_to_remove.each { |name| remove_preferred_network(name) }
184
189
  end
@@ -235,7 +240,7 @@ class BaseModel
235
240
  def try_os_command_until(command, stop_condition, max_tries = 100)
236
241
 
237
242
  report_attempt_count = ->(attempt_count) do
238
- puts "Command was executed #{attempt_count} time(s)." if @verbose_mode
243
+ puts "Command was executed #{attempt_count} time(s)." if verbose_mode
239
244
  end
240
245
 
241
246
  max_tries.times do |n|
@@ -1,5 +1,5 @@
1
1
  module WifiWand
2
2
 
3
- VERSION = '2.14.0'
3
+ VERSION = '2.15.0'
4
4
 
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wifi-wand
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.14.0
4
+ version: 2.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keith Bennett
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-12-07 00:00:00.000000000 Z
11
+ date: 2019-02-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -115,8 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
115
  - !ruby/object:Gem::Version
116
116
  version: '0'
117
117
  requirements: []
118
- rubyforge_project:
119
- rubygems_version: 2.7.7
118
+ rubygems_version: 3.0.2
120
119
  signing_key:
121
120
  specification_version: 4
122
121
  summary: Mac WiFi utility