mongoid_geo 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
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