on_the_map 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.
- data/Changelog.md +8 -0
- data/README.md +40 -15
- data/VERSION +1 -1
- data/lib/address.rb +1 -1
- data/lib/on_the_map/addressable.rb +1 -1
- data/lib/on_the_map/geo_locatable.rb +4 -3
- data/on_the_map.gemspec +3 -2
- data/spec/on_the_map/addressable_spec.rb +1 -1
- data/spec/on_the_map/mappable_spec.rb +3 -2
- metadata +4 -3
data/Changelog.md
ADDED
data/README.md
CHANGED
@@ -11,42 +11,67 @@ Contains various useful concern modules for:
|
|
11
11
|
* geo spatial indexing of position
|
12
12
|
* geo spatial searching on position
|
13
13
|
|
14
|
-
|
14
|
+
The code examples below use the concerned gem to include the concern modules into a class.
|
15
|
+
You can use a simple `include OnTheMap::XXXX` in its place or some other concern related API of your choice.
|
15
16
|
|
16
17
|
### Adressable
|
17
18
|
|
18
|
-
* embeds an address on the model
|
19
|
-
* adds delegate methods to all embedded address fields
|
19
|
+
* embeds an `address` on the model
|
20
|
+
* adds delegate methods to all embedded address fields (setters/getters)
|
20
21
|
* adds `full_address` method that returns full adress from concatenation of all fields
|
21
22
|
|
23
|
+
Address fields: `city, state, state_code, province, province_code, postal_code, country, country_code`
|
24
|
+
|
25
|
+
```ruby
|
26
|
+
class MyModel
|
27
|
+
include Mongoid::Document
|
28
|
+
|
29
|
+
include_concern :addressable, from: :on_the_map
|
30
|
+
end
|
31
|
+
```
|
32
|
+
|
22
33
|
### GeoLocatable
|
23
34
|
|
24
35
|
* includes `addressable` and `positionable` concerns
|
25
|
-
* performs geocoding after an address is created or updated
|
26
|
-
* adds `latitude` and `longitude`
|
36
|
+
* performs geocoding to calculate new position after an address is created or updated
|
37
|
+
* adds `latitude` and `longitude` to model
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
class MyModel
|
41
|
+
include Mongoid::Document
|
42
|
+
|
43
|
+
include_concerns :geo_locatable, from: 'OnTheMap'
|
44
|
+
end
|
45
|
+
```
|
27
46
|
|
28
47
|
### Mappable
|
29
48
|
|
30
49
|
* include `Gmaps4rails::ActsAsGmappable`
|
31
|
-
* adds field `normalized_address` to store address calculated and returned by Google Maps geo-coding
|
32
|
-
* adds method `gmaps4rails_address` which returns
|
50
|
+
* adds field `normalized_address` to store full address calculated and returned by Google Maps geo-coding
|
51
|
+
* adds method `gmaps4rails_address` which returns adress used in gmaps geo-coding (if enabled)
|
52
|
+
* includes `geo_locatable` and `positionable` concerns.
|
53
|
+
|
54
|
+
```ruby
|
55
|
+
class MyModel
|
56
|
+
include Mongoid::Document
|
57
|
+
|
58
|
+
include_concerns :mappable, from: 'OnTheMap'
|
59
|
+
end
|
60
|
+
```
|
33
61
|
|
34
62
|
### Positionable
|
35
63
|
|
36
|
-
* includes `Mongoid::Geospatial` into the model to make GeoSpatial
|
64
|
+
* includes `Mongoid::Geospatial` into the model to make GeoSpatial methods available
|
37
65
|
* Adds geo_field `position` (macro from Mongoid GeoSpatial)
|
38
66
|
* adds spatial indexing for position field
|
39
|
-
|
40
67
|
* positon field is indexed and used in geo-searches (fx find points near a point)
|
41
68
|
|
42
|
-
## Usage
|
43
|
-
|
44
69
|
```ruby
|
45
|
-
|
46
|
-
|
47
|
-
include_concerns :positionable, from: :on_the_map
|
70
|
+
class MyModel
|
71
|
+
include Mongoid::Document
|
48
72
|
|
49
|
-
include_concerns :
|
73
|
+
include_concerns :positionable, from: 'OnTheMap'
|
74
|
+
end
|
50
75
|
```
|
51
76
|
|
52
77
|
See the specs for examples on how to use these concerns.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/lib/address.rb
CHANGED
@@ -30,9 +30,10 @@ module OnTheMap
|
|
30
30
|
|
31
31
|
obj.geocoded = true
|
32
32
|
|
33
|
-
|
34
|
-
|
35
|
-
|
33
|
+
# apparently not needed! (according to author of gmaps4rails)
|
34
|
+
# if obj.respond_to? :gmaps
|
35
|
+
# obj.gmaps = true
|
36
|
+
# end
|
36
37
|
|
37
38
|
obj.send(:geocoding_done!)
|
38
39
|
end
|
data/on_the_map.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "on_the_map"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kristian Mandrup"]
|
12
|
-
s.date = "2013-03-
|
12
|
+
s.date = "2013-03-11"
|
13
13
|
s.description = "Makes it easy to add functionality to models related to geocoding, addressing and placing them as pins on a map"
|
14
14
|
s.email = "kmandrup@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
21
|
".rspec",
|
22
|
+
"Changelog.md",
|
22
23
|
"Gemfile",
|
23
24
|
"Gemfile.lock",
|
24
25
|
"LICENSE.txt",
|
@@ -18,7 +18,7 @@ describe OnTheMap::Addressable do
|
|
18
18
|
subject { address }
|
19
19
|
|
20
20
|
context 'blank/empty address' do
|
21
|
-
let(:address) {
|
21
|
+
let(:address) { MyGeoCodedAddress.create street: '', city: '' }
|
22
22
|
|
23
23
|
it 'should have a blank full address' do
|
24
24
|
expect(subject.address.full).to be_blank
|
@@ -77,8 +77,9 @@ describe OnTheMap::Mappable do
|
|
77
77
|
# leave geocoding to geocoder!
|
78
78
|
its(:gmaps_geocode?) { should be_false }
|
79
79
|
|
80
|
-
# geocoder sets gmaps when position has been calculated
|
81
|
-
|
80
|
+
# geocoder sets gmaps when position has been calculated?
|
81
|
+
# Note: not done anymore
|
82
|
+
its(:gmaps) { should be_false }
|
82
83
|
end
|
83
84
|
end
|
84
85
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: on_the_map
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: mongoid
|
@@ -166,6 +166,7 @@ extra_rdoc_files:
|
|
166
166
|
files:
|
167
167
|
- .document
|
168
168
|
- .rspec
|
169
|
+
- Changelog.md
|
169
170
|
- Gemfile
|
170
171
|
- Gemfile.lock
|
171
172
|
- LICENSE.txt
|
@@ -203,7 +204,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
203
204
|
version: '0'
|
204
205
|
segments:
|
205
206
|
- 0
|
206
|
-
hash:
|
207
|
+
hash: -3810047604221837472
|
207
208
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
208
209
|
none: false
|
209
210
|
requirements:
|