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.
Files changed (3) hide show
  1. data/README.textile +4 -0
  2. data/lib/mongoid/geo/geo_near.rb +20 -8
  3. 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
@@ -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
- clazz.where(:_id.in => ids).to_a
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.3
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-03 00:00:00.000000000 +01:00
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: &2153736160 !ruby/object:Gem::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: *2153736160
25
+ version_requirements: *2153977680
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: mongoid
28
- requirement: &2153735460 !ruby/object:Gem::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: *2153735460
36
+ version_requirements: *2153977020
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: bson_ext
39
- requirement: &2153734800 !ruby/object:Gem::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: *2153734800
47
+ version_requirements: *2153976360
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: activesupport
50
- requirement: &2153734140 !ruby/object:Gem::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: *2153734140
58
+ version_requirements: *2153975700
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: hashie
61
- requirement: &2153733480 !ruby/object:Gem::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: *2153733480
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