mongoid_geo 0.2.3 → 0.2.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.
- data/README.textile +4 -0
- data/lib/mongoid/geo/geo_near.rb +20 -8
- metadata +12 -12
data/README.textile
CHANGED
@@ -153,6 +153,10 @@ You can also use a #to_model method on an individual query result like this:
|
|
153
153
|
|
154
154
|
@nearest_city = Position.geoNear(another_address.location, :pos).first.to_model.city@
|
155
155
|
|
156
|
+
# the model returned also has a distance accessor populated with the distance calculated by running the geoNear query
|
157
|
+
|
158
|
+
@nearest_distance = Position.geoNear(another_address.location, :pos).first.to_model.distance@
|
159
|
+
|
156
160
|
h2. Mongoid Geo extra inclusions
|
157
161
|
|
158
162
|
Find addresses near a point using spherical distance calculation
|
data/lib/mongoid/geo/geo_near.rb
CHANGED
@@ -5,23 +5,35 @@ require 'mongoid/geo/haversine'
|
|
5
5
|
|
6
6
|
module Mongoid
|
7
7
|
module Geo
|
8
|
+
module Distance
|
9
|
+
attr_reader :distance
|
10
|
+
|
11
|
+
def set_distance dist
|
12
|
+
@distance = dist
|
13
|
+
@distance.freeze
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
8
17
|
module Model
|
9
18
|
def to_model
|
10
|
-
clazz.where(:_id => _id).first
|
19
|
+
m = clazz.where(:_id => _id).first.extend(Mongoid::Geo::Distance)
|
20
|
+
m.set_distance distance
|
21
|
+
m
|
11
22
|
end
|
12
23
|
end
|
13
24
|
|
14
25
|
module Models
|
15
|
-
# def to_models
|
16
|
-
# map do |m|
|
17
|
-
# m.to_model
|
18
|
-
# end
|
19
|
-
# end
|
20
|
-
|
21
26
|
def to_models
|
22
27
|
clazz = first.clazz
|
23
28
|
ids = map(&:_id)
|
24
|
-
|
29
|
+
distances = map(&:distance)
|
30
|
+
i = 0
|
31
|
+
clazz.where(:_id.in => ids).to_a.map do |m|
|
32
|
+
m.extend(Mongoid::Geo::Distance)
|
33
|
+
m.set_distance distances[i]
|
34
|
+
i += 1
|
35
|
+
m
|
36
|
+
end
|
25
37
|
end
|
26
38
|
end
|
27
39
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongoid_geo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-03-
|
12
|
+
date: 2011-03-04 00:00:00.000000000 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|
17
|
-
requirement: &
|
17
|
+
requirement: &2153977680 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ! '>='
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: '2.4'
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *2153977680
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: mongoid
|
28
|
-
requirement: &
|
28
|
+
requirement: &2153977020 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 2.0.0.rc.6
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *2153977020
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: bson_ext
|
39
|
-
requirement: &
|
39
|
+
requirement: &2153976360 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 1.1.6
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *2153976360
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: activesupport
|
50
|
-
requirement: &
|
50
|
+
requirement: &2153975700 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: 3.0.4
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *2153975700
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: hashie
|
61
|
-
requirement: &
|
61
|
+
requirement: &2153975020 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
version: 0.4.0
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *2153975020
|
70
70
|
description: Geo spatial extension on Mongoid 2, to add more geo-spatial capabilities
|
71
71
|
email:
|
72
72
|
- kmandrup@gmail.com
|