speedtest_net 0.8.0 → 0.8.1
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/.github/workflows/ruby.yml +11 -4
- data/.rubocop.yml +2 -6
- data/Gemfile +2 -2
- data/lib/speedtest_net/client.rb +13 -0
- data/lib/speedtest_net/config.rb +3 -6
- data/lib/speedtest_net/error.rb +2 -0
- data/lib/speedtest_net/geo.rb +29 -0
- data/lib/speedtest_net/server.rb +2 -2
- data/lib/speedtest_net/version.rb +1 -1
- data/speedtest_net.gemspec +1 -1
- metadata +6 -5
- data/lib/geo.rb +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 39d774cd49d85c30b04b9bb3dfd9743b33858f177ddaaaf9e3e165aef24e31cd
|
4
|
+
data.tar.gz: d71d13cca347f15923c8aa1ffa14799554553f5201f41c613a6c4c451cf00bf5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a7fc6501f22d46c3ed6e8a999e78042dd71b6f8e1aab714efaea797276bb3fea0727a755b916c9af3fc6bb63c23db5ee7dd82dbc38d9014a68a6d845c6e8e9a
|
7
|
+
data.tar.gz: cfeea44e6c008e8fa52223c8add27a7807e9f41a2ded4a3dcdf08ef1651fc1947145f44b64fa7b8a495965136348e29bb78e042895a3e9066a2c194b19bf791c
|
data/.github/workflows/ruby.yml
CHANGED
@@ -19,20 +19,27 @@ jobs:
|
|
19
19
|
runs-on: ubuntu-latest
|
20
20
|
steps:
|
21
21
|
- uses: actions/checkout@master
|
22
|
-
- name: Setup Ruby
|
22
|
+
- name: Setup Ruby
|
23
23
|
uses: ruby/setup-ruby@master
|
24
24
|
with:
|
25
|
-
ruby-version:
|
25
|
+
ruby-version: 3.0
|
26
|
+
- name: Run apt-get
|
27
|
+
run: |
|
28
|
+
sudo apt-get update
|
29
|
+
sudo apt-get install libcurl4-openssl-dev
|
30
|
+
- name: Bundle install
|
31
|
+
run: |
|
32
|
+
gem install bundler
|
33
|
+
bundle install --jobs 4 --retry 3
|
26
34
|
- name: Run rubocop
|
27
35
|
run: |
|
28
|
-
gem install rubocop rubocop-rspec
|
29
36
|
rubocop
|
30
37
|
|
31
38
|
rspec:
|
32
39
|
runs-on: ubuntu-latest
|
33
40
|
strategy:
|
34
41
|
matrix:
|
35
|
-
ruby: [ 2.
|
42
|
+
ruby: [ 2.6, 2.7, 3.0, 'head' ]
|
36
43
|
steps:
|
37
44
|
- uses: actions/checkout@master
|
38
45
|
- name: Setup Ruby
|
data/.rubocop.yml
CHANGED
data/Gemfile
CHANGED
@@ -9,8 +9,8 @@ gem 'codacy-coverage', '>= 2.1'
|
|
9
9
|
gem 'factory_bot', '>= 6.0'
|
10
10
|
gem 'rake', '>= 13.0'
|
11
11
|
gem 'rspec', '>= 3.0'
|
12
|
-
gem 'rubocop', '>= 0.
|
13
|
-
gem 'rubocop-rspec', '>= 1.
|
12
|
+
gem 'rubocop', '>= 1.0.0'
|
13
|
+
gem 'rubocop-rspec', '>= 1.44.1'
|
14
14
|
gem 'simplecov', '>= 0.17'
|
15
15
|
gem 'vcr', '>= 6.0'
|
16
16
|
gem 'webmock', '>= 3.7'
|
data/lib/speedtest_net/config.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'rexml/document'
|
4
|
+
require 'speedtest_net/client'
|
4
5
|
require 'speedtest_net/error'
|
5
|
-
require 'geo'
|
6
|
+
require 'speedtest_net/geo'
|
6
7
|
|
7
8
|
module SpeedtestNet
|
8
9
|
class Config
|
@@ -55,11 +56,7 @@ module SpeedtestNet
|
|
55
56
|
end
|
56
57
|
|
57
58
|
def client_config(elements)
|
58
|
-
|
59
|
-
ip: elements['ip'],
|
60
|
-
isp: elements['isp'],
|
61
|
-
geo: Geo.new(elements['lat'].to_f, elements['lon'].to_f)
|
62
|
-
}
|
59
|
+
Client.new(elements['ip'], elements['isp'], Geo.new(elements['lat'].to_f, elements['lon'].to_f))
|
63
60
|
end
|
64
61
|
|
65
62
|
def server_config(elements)
|
data/lib/speedtest_net/error.rb
CHANGED
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module SpeedtestNet
|
4
|
+
class Geo
|
5
|
+
RADIAN_PER_DEGREE = Math::PI / 180
|
6
|
+
EARTH_RADIUS = 6_371_000
|
7
|
+
|
8
|
+
def initialize(lat, long)
|
9
|
+
@lat = lat
|
10
|
+
@long = long
|
11
|
+
end
|
12
|
+
|
13
|
+
def distance(other) # rubocop:disable Metrics/AbcSize
|
14
|
+
a = Math.sin(radian_lat) * Math.sin(other.radian_lat) +
|
15
|
+
Math.cos(radian_lat) * Math.cos(other.radian_lat) *
|
16
|
+
Math.cos(radian_long - other.radian_long)
|
17
|
+
|
18
|
+
Math.acos(a) * EARTH_RADIUS
|
19
|
+
end
|
20
|
+
|
21
|
+
def radian_lat
|
22
|
+
@lat * RADIAN_PER_DEGREE
|
23
|
+
end
|
24
|
+
|
25
|
+
def radian_long
|
26
|
+
@long * RADIAN_PER_DEGREE
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
data/lib/speedtest_net/server.rb
CHANGED
@@ -4,7 +4,7 @@ require 'rexml/document'
|
|
4
4
|
require 'speedtest_net/config'
|
5
5
|
require 'speedtest_net/latency'
|
6
6
|
require 'speedtest_net/error'
|
7
|
-
require 'geo'
|
7
|
+
require 'speedtest_net/geo'
|
8
8
|
|
9
9
|
module SpeedtestNet
|
10
10
|
class Server
|
@@ -69,7 +69,7 @@ module SpeedtestNet
|
|
69
69
|
url = server['url2'] || server['url']
|
70
70
|
|
71
71
|
geo = Geo.new(server['lat'].to_f, server['lon'].to_f)
|
72
|
-
distance = geo.distance(config.client
|
72
|
+
distance = geo.distance(config.client.geo)
|
73
73
|
|
74
74
|
new(server['id'].to_i, url, geo, distance, server)
|
75
75
|
end
|
data/speedtest_net.gemspec
CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
29
29
|
spec.require_paths = ['lib']
|
30
30
|
|
31
|
-
spec.required_ruby_version = '>= 2.
|
31
|
+
spec.required_ruby_version = '>= 2.6.0'
|
32
32
|
|
33
33
|
spec.add_dependency 'curb', '~> 0.9'
|
34
34
|
spec.add_dependency 'rexml', '~> 3.2'
|
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.8.
|
4
|
+
version: 0.8.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryo Nakano
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: curb
|
@@ -72,15 +72,16 @@ files:
|
|
72
72
|
- Rakefile
|
73
73
|
- bin/console
|
74
74
|
- bin/setup
|
75
|
-
- lib/geo.rb
|
76
75
|
- lib/speedtest_net.rb
|
77
76
|
- lib/speedtest_net/calculate_speed.rb
|
77
|
+
- lib/speedtest_net/client.rb
|
78
78
|
- lib/speedtest_net/config.rb
|
79
79
|
- lib/speedtest_net/download.rb
|
80
80
|
- lib/speedtest_net/error.rb
|
81
81
|
- lib/speedtest_net/formatter/distance.rb
|
82
82
|
- lib/speedtest_net/formatter/latency.rb
|
83
83
|
- lib/speedtest_net/formatter/speed.rb
|
84
|
+
- lib/speedtest_net/geo.rb
|
84
85
|
- lib/speedtest_net/http_timeout.rb
|
85
86
|
- lib/speedtest_net/latency.rb
|
86
87
|
- lib/speedtest_net/result.rb
|
@@ -105,14 +106,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
105
106
|
requirements:
|
106
107
|
- - ">="
|
107
108
|
- !ruby/object:Gem::Version
|
108
|
-
version: 2.
|
109
|
+
version: 2.6.0
|
109
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
111
|
requirements:
|
111
112
|
- - ">="
|
112
113
|
- !ruby/object:Gem::Version
|
113
114
|
version: '0'
|
114
115
|
requirements: []
|
115
|
-
rubygems_version: 3.
|
116
|
+
rubygems_version: 3.2.15
|
116
117
|
signing_key:
|
117
118
|
specification_version: 4
|
118
119
|
summary: Library for testing internet bandwidth using speedtest.net
|
data/lib/geo.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
class Geo
|
4
|
-
RADIAN_PER_DEGREE = Math::PI / 180
|
5
|
-
EARTH_RADIUS = 6_371_000
|
6
|
-
|
7
|
-
def initialize(lat, long)
|
8
|
-
@lat = lat
|
9
|
-
@long = long
|
10
|
-
end
|
11
|
-
|
12
|
-
def distance(other) # rubocop:disable Metrics/AbcSize
|
13
|
-
a = Math.sin(radian_lat) * Math.sin(other.radian_lat) +
|
14
|
-
Math.cos(radian_lat) * Math.cos(other.radian_lat) *
|
15
|
-
Math.cos(radian_long - other.radian_long)
|
16
|
-
|
17
|
-
Math.acos(a) * EARTH_RADIUS
|
18
|
-
end
|
19
|
-
|
20
|
-
def radian_lat
|
21
|
-
@lat * RADIAN_PER_DEGREE
|
22
|
-
end
|
23
|
-
|
24
|
-
def radian_long
|
25
|
-
@long * RADIAN_PER_DEGREE
|
26
|
-
end
|
27
|
-
end
|