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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 35f79907495fb46041e545a27bf81429cbeb7d4ac8281cc5b3e0dc58cd329b66
4
- data.tar.gz: 0750ba31b2672dc5c9b3b3707dbf80d7a4bdcc3095971f54aa9ea45477f7e39e
3
+ metadata.gz: 39d774cd49d85c30b04b9bb3dfd9743b33858f177ddaaaf9e3e165aef24e31cd
4
+ data.tar.gz: d71d13cca347f15923c8aa1ffa14799554553f5201f41c613a6c4c451cf00bf5
5
5
  SHA512:
6
- metadata.gz: f8801cfc3a1dd4ce6ad90c8d76ed3ffe0196d9d74996f05e624f6c948f71a65c496d73140ca230c2cd84e64ecb191ab6d4d2818fd68f8520ef7133bb1d5d55ea
7
- data.tar.gz: 6e15ea46406b725c5b290312a81230a8caed487118c87fe46a0ff03cd86eb7ad6fca04500d5ac9029af3bd66455c141cdb23feb6ab47bb8fbbc20b770fd93dd9
6
+ metadata.gz: 9a7fc6501f22d46c3ed6e8a999e78042dd71b6f8e1aab714efaea797276bb3fea0727a755b916c9af3fc6bb63c23db5ee7dd82dbc38d9014a68a6d845c6e8e9a
7
+ data.tar.gz: cfeea44e6c008e8fa52223c8add27a7807e9f41a2ded4a3dcdf08ef1651fc1947145f44b64fa7b8a495965136348e29bb78e042895a3e9066a2c194b19bf791c
@@ -19,20 +19,27 @@ jobs:
19
19
  runs-on: ubuntu-latest
20
20
  steps:
21
21
  - uses: actions/checkout@master
22
- - name: Setup Ruby 2.7
22
+ - name: Setup Ruby
23
23
  uses: ruby/setup-ruby@master
24
24
  with:
25
- ruby-version: 2.7
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.5, 2.6, 2.7, 'ruby-head' ]
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
@@ -1,12 +1,8 @@
1
1
  require: rubocop-rspec
2
2
 
3
3
  AllCops:
4
- TargetRubyVersion: 2.5
5
- Exclude:
6
- - 'speedtest_net.gemspec'
7
-
8
- Layout/ClassStructure:
9
- Enabled: true
4
+ TargetRubyVersion: 2.6
5
+ NewCops: enable
10
6
 
11
7
  Style/Documentation:
12
8
  Enabled: false
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.76'
13
- gem 'rubocop-rspec', '>= 1.36'
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'
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SpeedtestNet
4
+ class Client
5
+ attr_reader :ip, :isp, :geo
6
+
7
+ def initialize(ip, isp, geo)
8
+ @ip = ip
9
+ @isp = isp
10
+ @geo = geo
11
+ end
12
+ end
13
+ end
@@ -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)
@@ -2,6 +2,8 @@
2
2
 
3
3
  module SpeedtestNet
4
4
  class Error < StandardError; end
5
+
5
6
  class HTTPDownloadError < Error; end
7
+
6
8
  class InvalidServerIdError < Error; end
7
9
  end
@@ -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
@@ -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[:geo])
72
+ distance = geo.distance(config.client.geo)
73
73
 
74
74
  new(server['id'].to_i, url, geo, distance, server)
75
75
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SpeedtestNet
4
- VERSION = '0.8.0'
4
+ VERSION = '0.8.1'
5
5
  end
@@ -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.5.0'
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.0
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: 2020-10-02 00:00:00.000000000 Z
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.5.0
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.1.2
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