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 +4 -4
- data/lib/speedtest/version.rb +1 -1
- data/lib/speedtest.rb +21 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e37d03e016955b5ce893aa87d117b5e5fb797bbd87756418c8bd6f4c6f127ffe
|
4
|
+
data.tar.gz: a8b5d4f80ea96ef5a526969fb4652509d26ffe81821a0531854b8fda2270bccc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53456327b24e161a54775411def4e8ca19df19def67f68e39e515d1d1f295325bc106f631bfe47836d44d1953368fc58c3fe1bb02d495af978f0d4c5be73adc5
|
7
|
+
data.tar.gz: 241016c035003d8ad6db32d025947faadcd08345cdd2d045d4a4499181dfd4368163c9fa44aebd6f5983fb6069dd8b2bba438815084c4653f414aae4b5eeeaf2
|
data/lib/speedtest/version.rb
CHANGED
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..
|
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
|
-
|
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(
|
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.
|
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-
|
12
|
+
date: 2018-07-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: httparty
|