plr-speedtest 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d0ddae132c5759e03856c57ef9ee506a88baabb09696808367c00460717931c7
4
- data.tar.gz: 3d56192d309f05170919119ce85884e7e4f3a988a34476b3a9fa95d7e77c82b5
3
+ metadata.gz: e37d03e016955b5ce893aa87d117b5e5fb797bbd87756418c8bd6f4c6f127ffe
4
+ data.tar.gz: a8b5d4f80ea96ef5a526969fb4652509d26ffe81821a0531854b8fda2270bccc
5
5
  SHA512:
6
- metadata.gz: a1f22c27c463f286cada30d926683a4b318e989cc4d1f9aaeb1bb31b2ef9388952b2d02a09046d53a1f2471a001c48d7139c937c4bc0e4392b2567ce9f7343bb
7
- data.tar.gz: e3173ba212eff79ee42fe75b1fcb77cb608dddf452e57faaf3ea834f97367d8694c3f0b852393c9afd2fa56e5f989aeafc113a6524d1da2d319e5a3ae8d27d8e
6
+ metadata.gz: 53456327b24e161a54775411def4e8ca19df19def67f68e39e515d1d1f295325bc106f631bfe47836d44d1953368fc58c3fe1bb02d495af978f0d4c5be73adc5
7
+ data.tar.gz: 241016c035003d8ad6db32d025947faadcd08345cdd2d045d4a4499181dfd4368163c9fa44aebd6f5983fb6069dd8b2bba438815084c4653f414aae4b5eeeaf2
@@ -1,3 +1,3 @@
1
1
  module Speedtest
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
data/lib/speedtest.rb CHANGED
@@ -24,12 +24,15 @@ module Speedtest
24
24
  @upload_size = options[:upload_size] || 1_000_000
25
25
  @logger = options[:logger]
26
26
  @skip_servers = options[:skip_servers] || []
27
+ @skip_latency_min_ms = options[:skip_latency_min_ms] || 0
27
28
 
28
29
  @ping_runs = 2 if @ping_runs < 2
29
30
  end
30
31
 
31
32
  def run()
32
33
  server = pick_server
34
+ raise FailedTransfer, "Failed to find a suitable server" unless server
35
+
33
36
  @server_root = server[:url]
34
37
  log "Server #{@server_root}"
35
38
 
@@ -147,7 +150,7 @@ module Speedtest
147
150
  .sort_by { |x| x[:distance] }
148
151
 
149
152
  # sort the nearest 10 by download latency
150
- latency_sorted_servers = sorted_servers[0..9].map { |x|
153
+ latency_sorted_servers = sorted_servers[0..20].map { |x|
151
154
  {
152
155
  :latency => ping(x[:url]),
153
156
  :url => x[:url]
@@ -155,14 +158,27 @@ module Speedtest
155
158
  }.sort_by { |x| x[:latency] }
156
159
 
157
160
  latency_sorted_servers.reject! do |s|
161
+ skip = false
162
+
163
+ if s[:latency] < @skip_latency_min_ms
164
+ log "Skipping #{s} because latency (#{s[:latency]}) is below threshold (#{@skip_latency_min_ms})"
165
+ skip = true
166
+ end
167
+
158
168
  if @skip_servers.include?(s[:url])
159
- log "Skipping #{s}"
160
- true
169
+ log "Skipping #{s} because url in skip list"
170
+ skip = true
161
171
  end
172
+
173
+ skip
162
174
  end
163
175
 
164
176
  selected = latency_sorted_servers.detect { |s| validate_server_transfer(s[:url]) }
165
- log "Automatically selected server: #{selected[:url]} - #{selected[:latency]} ms"
177
+ if selected
178
+ log "Automatically selected server: #{selected[:url]} - #{selected[:latency]} ms"
179
+ else
180
+ error "Cannot find any server matching the requirements"
181
+ end
166
182
 
167
183
  selected
168
184
  end
@@ -202,6 +218,6 @@ module Speedtest
202
218
  end
203
219
 
204
220
  if __FILE__ == $PROGRAM_NAME
205
- x = Speedtest::Test.new(ARGV)
221
+ x = Speedtest::Test.new(min_transfer_secs: 10, download_size: 1000, upload_size: 100_000, num_threads: 10, logger: Logger.new(STDOUT), skip_latency_min_ms: 40)
206
222
  x.run
207
223
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: plr-speedtest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pete Myron
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-05-13 00:00:00.000000000 Z
12
+ date: 2018-07-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty