speedtest_net 0.1.0 → 0.1.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: 80f9bd935e73dcf094c225c6ec4eb80ff086cd7797286b3d7f6c86caa16cb9e1
4
- data.tar.gz: 29bb84492a55c888f88692be51ee9944ee5b7313584f7699dc222b826782b3a6
3
+ metadata.gz: 787db5a853e47d1ff30c1d19a559d5fa97ac509a04b02cfd5bf40af2480f1c48
4
+ data.tar.gz: 5f3d1de9803286980bde19667c43953484e2acaf87ce89efd64fe1d0e396e9a3
5
5
  SHA512:
6
- metadata.gz: 682bb8762df5c47e239d727a1444cdcb255c7be49cc66e7390341187dd4ab45ddb238190bf1885884a29eb707093b7b2898b8f8947189a9ab7dac3b08fb26067
7
- data.tar.gz: 3ae25bca44c7da78721f63cd4d8d98b146057d253f6c78cd16a3704fadd92dda171cd1a75015a050eff0c58d7466ec42673b92877b7cb60de6c80187146511d6
6
+ metadata.gz: 361732b261cf02801d3507938ae4bc59f533bf2c26d8d3ee66c7267948ede13c1fa9f5e78145455b0b4171bffad15ef9233912ed7a0af690c2a4f74d10577a44
7
+ data.tar.gz: 53f5835b6b32905b7f1332595a4ddc02f2d3b5e26258867b6d3d15f5b972b437c5d9ff6d909ffca9e601e6d59d9f8804dd8c536770f9f9088c4ce637af8a6179
data/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # SpeedtestNet
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/speedtest_net.svg)](https://badge.fury.io/rb/speedtest_net)
4
+ [![Codacy Badge](https://api.codacy.com/project/badge/Grade/18f112dae19a48938bdf2b225d3a76bb)](https://www.codacy.com/manual/ryonkn/speedtest_net?utm_source=github.com&utm_medium=referral&utm_content=ryonkn/speedtest_net&utm_campaign=Badge_Grade)
5
+
3
6
  A Ruby library for testing internet bandwidth using speedtest.net
4
7
 
5
8
  ## Installation
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'geo_point'
4
3
  require 'rexml/document'
5
4
  require 'speedtest_net/error'
5
+ require 'speedtest_net/geo'
6
6
 
7
7
  module SpeedtestNet
8
8
  class Config
@@ -60,7 +60,7 @@ module SpeedtestNet
60
60
  {
61
61
  ip: elements['ip'],
62
62
  isp: elements['isp'],
63
- geo_point: GeoPoint.new(elements['lat'].to_f, elements['lon'].to_f)
63
+ geo: SpeedtestNet::Geo.new(elements['lat'].to_f, elements['lon'].to_f)
64
64
  }
65
65
  end
66
66
 
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'curb'
4
+ require 'securerandom'
4
5
 
5
6
  module SpeedtestNet
6
7
  class Download
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module SpeedtestNet
4
+ class Geo
5
+ RADIUS_PER_DEGREE = Math::PI / 180
6
+ RADIUS_METER = 6_371_000
7
+
8
+ attr_reader :lat, :long
9
+
10
+ def initialize(lat, long)
11
+ @lat = lat
12
+ @long = long
13
+ end
14
+
15
+ def distance(other) # rubocop:disable Metrics/AbcSize
16
+ delta_lat = (@lat - other.lat) * RADIUS_PER_DEGREE
17
+ delta_long = (@long - other.long) * RADIUS_PER_DEGREE
18
+
19
+ lat_radius = @lat * RADIUS_PER_DEGREE
20
+ other_lat_radius = other.lat * RADIUS_PER_DEGREE
21
+
22
+ a = Math.sin(delta_lat / 2)**2 +
23
+ Math.cos(lat_radius) *
24
+ Math.cos(other_lat_radius) *
25
+ Math.sin(delta_long / 2)**2
26
+
27
+ Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)) * 2 * RADIUS_METER
28
+ end
29
+ end
30
+ end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'typhoeus'
4
+ require 'securerandom'
4
5
 
5
6
  module SpeedtestNet
6
7
  class Latency
@@ -1,21 +1,21 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'geo_point'
4
3
  require 'rexml/document'
5
4
  require 'speedtest_net/config'
6
5
  require 'speedtest_net/latency'
7
6
  require 'speedtest_net/error'
7
+ require 'speedtest_net/geo'
8
8
 
9
9
  module SpeedtestNet
10
10
  class Server
11
- attr_reader :id, :url, :geo_point, :distance, :name, :country, :cc,
11
+ attr_reader :id, :url, :geo, :distance, :name, :country, :cc,
12
12
  :sponsor, :host
13
13
  attr_accessor :latency
14
14
 
15
- def initialize(id, url, geo_point, distance, server)
15
+ def initialize(id, url, geo, distance, server)
16
16
  @id = id
17
17
  @url = url
18
- @geo_point = geo_point
18
+ @geo = geo
19
19
  @distance = distance
20
20
  @name = server['name']
21
21
  @country = server['country']
@@ -52,10 +52,10 @@ module SpeedtestNet
52
52
  config = SpeedtestNet::Config.fetch
53
53
  url = server['url2'] || server['url']
54
54
 
55
- geo_point = GeoPoint.new(server['lat'].to_f, server['lon'].to_f)
56
- distance = geo_point.distance_to(config.client[:geo_point])
55
+ geo = SpeedtestNet::Geo.new(server['lat'].to_f, server['lon'].to_f)
56
+ distance = geo.distance(config.client[:geo])
57
57
 
58
- new(server['id'].to_i, url, geo_point, distance, server)
58
+ new(server['id'].to_i, url, geo, distance, server)
59
59
  end
60
60
 
61
61
  def fetch_servers
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'curb'
4
+ require 'securerandom'
4
5
 
5
6
  module SpeedtestNet
6
7
  class Upload
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SpeedtestNet
4
- VERSION = '0.1.0'
4
+ VERSION = '0.1.1'
5
5
  end
@@ -10,8 +10,8 @@ Gem::Specification.new do |spec|
10
10
  spec.authors = ['Ryo Nakano']
11
11
  spec.email = ['ryo@ryonkn.com']
12
12
 
13
- spec.summary = 'Ruby Library for testing internet bandwidth using speedtest.net'
14
- spec.description = 'Ruby Library for testing internet bandwidth using speedtest.net'
13
+ spec.summary = 'Library for testing internet bandwidth using speedtest.net'
14
+ spec.description = 'Library for testing internet bandwidth using speedtest.net'
15
15
  spec.homepage = 'https://github.com/ryonkn/speedtest_net'
16
16
  spec.license = 'MIT'
17
17
 
@@ -36,6 +36,5 @@ Gem::Specification.new do |spec|
36
36
  spec.add_development_dependency 'rubocop-rspec'
37
37
 
38
38
  spec.add_dependency 'curb', '~> 0.9'
39
- spec.add_dependency 'geo_point', '~> 0.2'
40
39
  spec.add_dependency 'typhoeus'
41
40
  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.1.0
4
+ version: 0.1.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: 2019-11-01 00:00:00.000000000 Z
11
+ date: 2019-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,20 +108,6 @@ dependencies:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0.9'
111
- - !ruby/object:Gem::Dependency
112
- name: geo_point
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '0.2'
118
- type: :runtime
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '0.2'
125
111
  - !ruby/object:Gem::Dependency
126
112
  name: typhoeus
127
113
  requirement: !ruby/object:Gem::Requirement
@@ -136,7 +122,7 @@ dependencies:
136
122
  - - ">="
137
123
  - !ruby/object:Gem::Version
138
124
  version: '0'
139
- description: Ruby Library for testing internet bandwidth using speedtest.net
125
+ description: Library for testing internet bandwidth using speedtest.net
140
126
  email:
141
127
  - ryo@ryonkn.com
142
128
  executables: []
@@ -158,6 +144,7 @@ files:
158
144
  - lib/speedtest_net/config.rb
159
145
  - lib/speedtest_net/download.rb
160
146
  - lib/speedtest_net/error.rb
147
+ - lib/speedtest_net/geo.rb
161
148
  - lib/speedtest_net/latency.rb
162
149
  - lib/speedtest_net/result.rb
163
150
  - lib/speedtest_net/run.rb
@@ -190,5 +177,5 @@ requirements: []
190
177
  rubygems_version: 3.0.3
191
178
  signing_key:
192
179
  specification_version: 4
193
- summary: Ruby Library for testing internet bandwidth using speedtest.net
180
+ summary: Library for testing internet bandwidth using speedtest.net
194
181
  test_files: []