speedtest_net 0.5.0 → 0.6.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: e96f1e3dfc288c7a9203f575420bc6b25d5077c8dbde6e3822851f54296fff5f
4
- data.tar.gz: 8019fba56eae4047eab3ae84b6afbaa4979262e3ed59395a6394c1ad466e013c
3
+ metadata.gz: 2e3230080f72a74bec40dabe93d6bd1f07bfad6f311a8a44d309d0cbe8ae5f4c
4
+ data.tar.gz: abf00585535f9a6582bcb6f20c969f38c5fb0af269c0e747d1eae2dd03f00554
5
5
  SHA512:
6
- metadata.gz: 6bcfdd411e38e6e6a602ce61a41f32ed5f27ee1723269502e8d80cedc08a8d5ccad1bcd61874f3621287024463bce1d6466b92834a999f639f04ebae529b856a
7
- data.tar.gz: d535e32474576a614709b33b67bc836cc32bf32021ee8d1a38eaf202817cacfd0e223c1f8c4d9efd7a3ce17ef3ad605fbb37832100bfcff3ae6b87905f27b9df
6
+ metadata.gz: f942548d62c04d6be8a63720e923f315849685468f21e99edda0e03f5906ca303d00c6d566c4a2d14231688920a6ea6cac190ecd07374660c9578cc686d9bbf6
7
+ data.tar.gz: 2a482c31e6d54f4c245c24bfc77d31655519cc4b9638e0189e40e1a8b4ea7a4df92ac2a813c9cdca6b6beadab614673c3286d7d72cd72382053fce7ab4a0615c
data/lib/speedtest_net.rb CHANGED
@@ -7,9 +7,9 @@ require 'speedtest_net/upload'
7
7
  require 'speedtest_net/result'
8
8
 
9
9
  module SpeedtestNet
10
- def self.run
10
+ def self.run(id = nil)
11
11
  config = SpeedtestNet::Config.fetch
12
- server = SpeedtestNet::Server.best_server
12
+ server = SpeedtestNet::Server.select_server(id)
13
13
  download_results = SpeedtestNet::Download.measure(server)
14
14
  upload_results = SpeedtestNet::Upload.measure(server)
15
15
 
@@ -3,4 +3,5 @@
3
3
  module SpeedtestNet
4
4
  class Error < StandardError; end
5
5
  class HTTPDownloadError < Error; end
6
+ class InvalidServerIdError < Error; end
6
7
  end
@@ -38,6 +38,12 @@ module SpeedtestNet
38
38
  servers.sort_by { |s| [s.distance, s.id] }
39
39
  end
40
40
 
41
+ def select_server(id = nil)
42
+ id.nil? ? best_server : pick_server(id)
43
+ end
44
+
45
+ private
46
+
41
47
  def best_server
42
48
  servers = list
43
49
  closest_servers = servers.first(10)
@@ -48,7 +54,14 @@ module SpeedtestNet
48
54
  sorted_servers.first
49
55
  end
50
56
 
51
- private
57
+ def pick_server(id)
58
+ servers = list
59
+ server = servers.find { |s| s.id == id }
60
+ raise InvalidServerIdError if server.nil?
61
+
62
+ server.measure_latency
63
+ server
64
+ end
52
65
 
53
66
  def create_instance(server)
54
67
  config = SpeedtestNet::Config.fetch
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SpeedtestNet
4
- VERSION = '0.5.0'
4
+ VERSION = '0.6.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: speedtest_net
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryo Nakano
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-12-14 00:00:00.000000000 Z
11
+ date: 2020-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -245,7 +245,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
245
245
  - !ruby/object:Gem::Version
246
246
  version: '0'
247
247
  requirements: []
248
- rubygems_version: 3.0.3
248
+ rubygems_version: 3.1.2
249
249
  signing_key:
250
250
  specification_version: 4
251
251
  summary: Library for testing internet bandwidth using speedtest.net