plr-speedtest 0.3.2 → 0.3.3

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: 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