speedtest_net 0.6.3 → 0.7.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: 5735085e35314393b486b4f843bf07ad0c7bed6e5b5a7a037a4f81276515e543
4
- data.tar.gz: e840c3f0c1e2830bd152c6059f55f2a7b41a4a513d3040ecbf8bdab4d28f56e1
3
+ metadata.gz: ed21ac6a96ef110554941966993ee911a4062090216400207534c59afcc5b383
4
+ data.tar.gz: 466c522ae2b60cd187a5d7b98b023db50bfa8f9834e55a01979879de154a3e34
5
5
  SHA512:
6
- metadata.gz: 95c3ad8eba4faa4cac8edc235d3cf7e6aaade727e649bec9ad732405de8c7452423bd2c3f6f2d4b7ac590d2518363402e486ddf7c63270642f03f1fc1950a5c6
7
- data.tar.gz: f5821ceb7dabc4d60c4245754b164a09a324fb1317b2bc58bcd9d0b9f4c7e5fde2c1156ddfdaf41f133252736708210342818ab942e495c05a6b1f0a7766eaed
6
+ metadata.gz: 838e4b7eb05e59234e650c6d807c985a236467bf89af5a440df795febe66e6c211026b54f5ecd6019e41bed08e6b50e61ea9de1fc5f4b2ad6f4ade54ec6f55e9
7
+ data.tar.gz: 51d43777a2d506eb2092e1b77fd1de923881e4ba0fabe727a09b7da8dea1a0112bdd78ea3af2cd89f4072de352a0667b6ff4799e19110923ce34afd05c4270dd
@@ -8,9 +8,9 @@ require 'speedtest_net/upload'
8
8
  require 'speedtest_net/result'
9
9
 
10
10
  module SpeedtestNet
11
- def self.run(id = nil)
11
+ def self.run(id = nil, exclude_server_ids: [])
12
12
  config = Config.fetch
13
- server = Server.select_server(id)
13
+ server = Server.select_server(id, exclude_server_ids)
14
14
  download_results = Download.measure(server)
15
15
  upload_results = Upload.measure(server)
16
16
 
@@ -38,15 +38,16 @@ 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)
41
+ def select_server(id = nil, exclude_server_ids = [])
42
+ id.nil? ? best_server(exclude_server_ids) : pick_server(id)
43
43
  end
44
44
 
45
45
  private
46
46
 
47
- def best_server
47
+ def best_server(exclude_server_ids)
48
48
  servers = list
49
- closest_servers = servers.first(10)
49
+ excluded_servers = servers.reject { |server| exclude_server_ids.include?(server.id) }
50
+ closest_servers = excluded_servers.first(10)
50
51
  closest_servers.each(&:measure_latency)
51
52
  sorted_servers = closest_servers.sort_by do |s|
52
53
  [s.latency, s.distance, s.id]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SpeedtestNet
4
- VERSION = '0.6.3'
4
+ VERSION = '0.7.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.6.3
4
+ version: 0.7.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: 2020-08-09 00:00:00.000000000 Z
11
+ date: 2020-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler