opium 1.3.3 → 1.3.4
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/CHANGELOG.md +4 -0
- data/lib/opium/extensions/geo_point.rb +11 -0
- data/lib/opium/version.rb +1 -1
- data/spec/opium/extensions/geo_point_spec.rb +31 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6a18b9e563fc79c5c86b05f3eb423e6b6eed3f52
|
|
4
|
+
data.tar.gz: c411e0433a02b598dd1f8dc7348f70ad1a5eda8b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4d4e338a6aa6d2f58dfa7b549c0ce656ee1d07f08f4b1dbd33f54c1ec48d716dacdac2a78373850301a9480312d149c0889868a933e850b200306d84da9bdbd6
|
|
7
|
+
data.tar.gz: 9133125cb88dca90ed7f86e3c092876e50dca84ce4f430a733e4048f4774e3f3f79f073062c65aa65af9b562425583a6103dd2a4f770623a76b33bdda8512ae8
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
## 1.3.4
|
|
2
|
+
### New Features
|
|
3
|
+
- Opium::GeoPoint now provides a custom === operator; this either delegates to == (if given another geo point), to != (if given GeoPoint; NULL_ISLAND is an invalid location!), or nil if anything else.
|
|
4
|
+
|
|
1
5
|
## 1.3.3
|
|
2
6
|
### New Features
|
|
3
7
|
- Opium::GeoPoint now implements Comparable
|
|
@@ -31,9 +31,20 @@ module Opium
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def <=>( geo_point )
|
|
34
|
+
return nil unless geo_point.is_a?( self.class )
|
|
34
35
|
[self.latitude, self.longitude] <=> [geo_point.latitude, geo_point.longitude]
|
|
35
36
|
end
|
|
36
37
|
|
|
38
|
+
def ===( other )
|
|
39
|
+
if other.is_a? self.class
|
|
40
|
+
self == other
|
|
41
|
+
elsif other <= self.class
|
|
42
|
+
self != NULL_ISLAND
|
|
43
|
+
else
|
|
44
|
+
nil
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
37
48
|
NULL_ISLAND = new( [0, 0] ).freeze
|
|
38
49
|
|
|
39
50
|
class << self
|
data/lib/opium/version.rb
CHANGED
|
@@ -101,6 +101,37 @@ describe Opium::GeoPoint do
|
|
|
101
101
|
end
|
|
102
102
|
end
|
|
103
103
|
|
|
104
|
+
describe '.===' do
|
|
105
|
+
let(:result) { a === described_class }
|
|
106
|
+
|
|
107
|
+
context 'with a real location' do
|
|
108
|
+
let(:a) { described_class.new( [1, 1] ) }
|
|
109
|
+
|
|
110
|
+
it { expect( result ).to eq true }
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
context 'with NULL_ISLAND' do
|
|
114
|
+
let(:a) { described_class::NULL_ISLAND }
|
|
115
|
+
|
|
116
|
+
it { expect( result ).to eq false }
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
context 'when compared against an actual location' do
|
|
120
|
+
let(:result) { a === b }
|
|
121
|
+
let(:a) { described_class.new( [1, 1] ) }
|
|
122
|
+
let(:b) { described_class.new( [1, 1] ) }
|
|
123
|
+
|
|
124
|
+
it { expect( result ).to eq true }
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
context 'when compared against non geo data' do
|
|
128
|
+
let(:result) { a === Integer }
|
|
129
|
+
let(:a) { described_class.new( [1, 1] ) }
|
|
130
|
+
|
|
131
|
+
it { expect( result ).to be_falsy }
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
|
|
104
135
|
describe "instance" do
|
|
105
136
|
describe "with an array value" do
|
|
106
137
|
subject { described_class.new [33.33, -117.117] }
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: opium
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Joshua Bowers
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-06-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|