speedtest_net 0.1.0 → 0.1.1

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