antipodes 0.0.1 → 0.0.2
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/.gitignore +1 -0
- data/README.md +15 -21
- data/lib/antipodes/version.rb +1 -1
- data/lib/antipodes.rb +1 -1
- data/spec/antipodes_spec.rb +72 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 29baacb8cf6f2c78277bfea59292f9f65a0974db
|
4
|
+
data.tar.gz: a2c961bcadc00e272f4216523579914c597b593f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c35b4b55f26bf224befcec5cc7200188599642ddf8a15bcc40c629a2a139c8f047261e227e834518d3558a1369002f203d9b582c22d35b8aefd569166f13d0ec
|
7
|
+
data.tar.gz: 393815d1d91e589773fbac99d5d6cf235dab20fe23e2c71df4fdeb3f0ae3b65e3245885e9c800408b8a250558215dfd1f8171d7f67c74d6edfed631cc79ced16
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,29 +1,23 @@
|
|
1
1
|
# Antipodes
|
2
2
|
|
3
|
-
|
3
|
+
This is a silly gem of no consequence with exactly one feature: to find the
|
4
|
+
[antipodes](http://en.wikipedia.org/wiki/Antipodes) of a given place on Earth.
|
4
5
|
|
5
|
-
|
6
|
+
Both latitude/longitude coordinates and place names are accepted as input. If a
|
7
|
+
place name is used, it is geocoded with the
|
8
|
+
[Geocoder](https://github.com/alexreisner/geocoder) gem.
|
6
9
|
|
7
|
-
|
10
|
+
```ruby
|
11
|
+
Antipodes.for(47.6062095, -122.3320708) #=> [-47.6062095, 57.6679292]
|
8
12
|
|
9
|
-
|
13
|
+
Antipodes.for(-47.6062095, 57.6679292) #=> [47.6062095, -122.3320708]
|
10
14
|
|
11
|
-
|
15
|
+
Antipodes.for('Beijing') #=> [-39.90403, -63.592473999999996]
|
12
16
|
|
13
|
-
|
17
|
+
Antipodes.for('Buenos Aires') #=> [34.6037232, 121.6184069]
|
18
|
+
```
|
14
19
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
## Usage
|
20
|
-
|
21
|
-
TODO: Write usage instructions here
|
22
|
-
|
23
|
-
## Contributing
|
24
|
-
|
25
|
-
1. Fork it
|
26
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
27
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
28
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
29
|
-
5. Create new Pull Request
|
20
|
+
While it would be cool to get a corresponding place name (instead of
|
21
|
+
lat/lon), it’s neither practical (most places don’t have land antipodes, since
|
22
|
+
most of Earth is covered in water) nor possible given the current range of
|
23
|
+
geocoding options.
|
data/lib/antipodes/version.rb
CHANGED
data/lib/antipodes.rb
CHANGED
@@ -2,7 +2,7 @@ require 'antipodes/version'
|
|
2
2
|
require 'geocoder'
|
3
3
|
|
4
4
|
module Antipodes
|
5
|
-
def self.
|
5
|
+
def self.for(*params)
|
6
6
|
latitude, longitude = params.size > 1 ? params : Geocoder.search(params.first).first.coordinates
|
7
7
|
|
8
8
|
antipodal_latitude = latitude > 0 ? -latitude : latitude.abs
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require 'antipodes'
|
2
|
+
|
3
|
+
describe Antipodes do
|
4
|
+
context 'with latitude and longitude' do
|
5
|
+
subject { Antipodes.for(latitude, longitude) }
|
6
|
+
|
7
|
+
context 'with positive latitude' do
|
8
|
+
let(:latitude) { 47.6062095 }
|
9
|
+
|
10
|
+
context 'with positive longitude' do
|
11
|
+
let(:longitude) { 122.3320708 }
|
12
|
+
|
13
|
+
it 'gets the antipodes' do
|
14
|
+
expect(subject).to eq([ -47.6062095, -57.6679292 ])
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'with negative longitude' do
|
19
|
+
let(:longitude) { -122.3320708 }
|
20
|
+
|
21
|
+
it 'gets the antipodes' do
|
22
|
+
expect(subject).to eq([ -47.6062095, 57.6679292 ])
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context 'with negative latitude' do
|
28
|
+
let(:latitude) { -47.6062095 }
|
29
|
+
|
30
|
+
context 'with positive longitude' do
|
31
|
+
let(:longitude) { 57.6679292 }
|
32
|
+
|
33
|
+
it 'gets the antipodes' do
|
34
|
+
expect(subject).to eq([ 47.6062095, -122.3320708 ])
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context 'with negative longitude' do
|
39
|
+
let(:longitude) { -57.6679292 }
|
40
|
+
|
41
|
+
it 'gets the antipodes' do
|
42
|
+
expect(subject).to eq([ 47.6062095, 122.3320708 ])
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
context 'with place name' do
|
49
|
+
subject { Antipodes.for('Seattle') }
|
50
|
+
|
51
|
+
before do
|
52
|
+
Geocoder.configure(:lookup => :test)
|
53
|
+
Geocoder::Lookup::Test.add_stub(
|
54
|
+
'Seattle',
|
55
|
+
[{
|
56
|
+
'latitude' => 47.6062095,
|
57
|
+
'longitude' => -122.3320708,
|
58
|
+
'address' => 'Seattle, WA, USA',
|
59
|
+
'state' => 'Washington',
|
60
|
+
'state_code' => 'WA',
|
61
|
+
'country' => 'United States',
|
62
|
+
'country_code' => 'US'
|
63
|
+
}]
|
64
|
+
)
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'gets the antipodes' do
|
68
|
+
expect(subject).to eq([ -47.6062095, 57.6679292 ])
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: antipodes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Leitzel
|
@@ -96,6 +96,7 @@ files:
|
|
96
96
|
- antipodes.gemspec
|
97
97
|
- lib/antipodes.rb
|
98
98
|
- lib/antipodes/version.rb
|
99
|
+
- spec/antipodes_spec.rb
|
99
100
|
homepage: https://github.com/joshleitzel/antipodes
|
100
101
|
licenses:
|
101
102
|
- MIT
|
@@ -120,4 +121,5 @@ rubygems_version: 2.1.10
|
|
120
121
|
signing_key:
|
121
122
|
specification_version: 4
|
122
123
|
summary: Geographical antipodes calculator
|
123
|
-
test_files:
|
124
|
+
test_files:
|
125
|
+
- spec/antipodes_spec.rb
|