speedtest_net 0.5.0 → 0.6.0

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