cb_mongoid_spacial 0.2.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. data/.document +5 -0
  2. data/.gitignore +49 -0
  3. data/.rspec +1 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.md +180 -0
  7. data/Rakefile +18 -0
  8. data/lib/mongoid_spacial.rb +11 -0
  9. data/lib/mongoid_spacial/contexts/mongo.rb +115 -0
  10. data/lib/mongoid_spacial/criteria.rb +5 -0
  11. data/lib/mongoid_spacial/criterion.rb +3 -0
  12. data/lib/mongoid_spacial/criterion/complex.rb +19 -0
  13. data/lib/mongoid_spacial/criterion/inclusion.rb +14 -0
  14. data/lib/mongoid_spacial/criterion/near_spacial.rb +50 -0
  15. data/lib/mongoid_spacial/criterion/within_spacial.rb +60 -0
  16. data/lib/mongoid_spacial/extentions/hash/criteria_helpers.rb +22 -0
  17. data/lib/mongoid_spacial/extentions/symbol/inflections.rb +46 -0
  18. data/lib/mongoid_spacial/field_option.rb +38 -0
  19. data/lib/mongoid_spacial/finders.rb +5 -0
  20. data/lib/mongoid_spacial/spacial.rb +56 -0
  21. data/lib/mongoid_spacial/spacial/core_ext.rb +27 -0
  22. data/lib/mongoid_spacial/spacial/document.rb +29 -0
  23. data/lib/mongoid_spacial/spacial/formulas.rb +52 -0
  24. data/lib/mongoid_spacial/spacial/geo_near_results.rb +140 -0
  25. data/lib/mongoid_spacial/spacial/version.rb +5 -0
  26. data/mongoid_spacial.gemspec +27 -0
  27. data/spec/config/mongod.conf +3 -0
  28. data/spec/config/mongoid.yml +18 -0
  29. data/spec/functional/mongoid/contexts/mongo_spec.rb +125 -0
  30. data/spec/functional/mongoid/criterion/inclusion_spec.rb +356 -0
  31. data/spec/functional/mongoid/spacial/geo_near_results_spec.rb +73 -0
  32. data/spec/functional/mongoid/spacial_spec.rb +18 -0
  33. data/spec/models/account.rb +19 -0
  34. data/spec/models/acolyte.rb +9 -0
  35. data/spec/models/address.rb +62 -0
  36. data/spec/models/address_component.rb +5 -0
  37. data/spec/models/agent.rb +10 -0
  38. data/spec/models/alert.rb +5 -0
  39. data/spec/models/animal.rb +21 -0
  40. data/spec/models/answer.rb +4 -0
  41. data/spec/models/bar.rb +9 -0
  42. data/spec/models/birthday.rb +13 -0
  43. data/spec/models/book.rb +5 -0
  44. data/spec/models/business.rb +7 -0
  45. data/spec/models/callbacks.rb +57 -0
  46. data/spec/models/category.rb +13 -0
  47. data/spec/models/circus.rb +7 -0
  48. data/spec/models/comment.rb +13 -0
  49. data/spec/models/country_code.rb +6 -0
  50. data/spec/models/description.rb +11 -0
  51. data/spec/models/division.rb +5 -0
  52. data/spec/models/drug.rb +5 -0
  53. data/spec/models/employer.rb +5 -0
  54. data/spec/models/entry.rb +6 -0
  55. data/spec/models/event.rb +20 -0
  56. data/spec/models/favorite.rb +6 -0
  57. data/spec/models/fruits.rb +11 -0
  58. data/spec/models/game.rb +18 -0
  59. data/spec/models/ghost.rb +7 -0
  60. data/spec/models/house.rb +4 -0
  61. data/spec/models/inheritance.rb +90 -0
  62. data/spec/models/league.rb +5 -0
  63. data/spec/models/location.rb +5 -0
  64. data/spec/models/login.rb +6 -0
  65. data/spec/models/membership.rb +4 -0
  66. data/spec/models/mixed_drink.rb +4 -0
  67. data/spec/models/name.rb +13 -0
  68. data/spec/models/namespacing.rb +11 -0
  69. data/spec/models/observed.rb +41 -0
  70. data/spec/models/override.rb +16 -0
  71. data/spec/models/owner.rb +6 -0
  72. data/spec/models/page.rb +5 -0
  73. data/spec/models/page_question.rb +4 -0
  74. data/spec/models/paranoid_post.rb +18 -0
  75. data/spec/models/parents.rb +32 -0
  76. data/spec/models/patient.rb +15 -0
  77. data/spec/models/person.rb +146 -0
  78. data/spec/models/pet.rb +7 -0
  79. data/spec/models/pet_owner.rb +6 -0
  80. data/spec/models/phone.rb +7 -0
  81. data/spec/models/player.rb +23 -0
  82. data/spec/models/post.rb +26 -0
  83. data/spec/models/preference.rb +9 -0
  84. data/spec/models/question.rb +8 -0
  85. data/spec/models/quiz.rb +6 -0
  86. data/spec/models/rating.rb +8 -0
  87. data/spec/models/river.rb +20 -0
  88. data/spec/models/role.rb +5 -0
  89. data/spec/models/service.rb +6 -0
  90. data/spec/models/shelf.rb +5 -0
  91. data/spec/models/slave_address_numbers.rb +14 -0
  92. data/spec/models/survey.rb +5 -0
  93. data/spec/models/tag.rb +6 -0
  94. data/spec/models/tracking_id_validation_history.rb +25 -0
  95. data/spec/models/translation.rb +5 -0
  96. data/spec/models/tree.rb +9 -0
  97. data/spec/models/user.rb +9 -0
  98. data/spec/models/user_account.rb +10 -0
  99. data/spec/models/vet_visit.rb +5 -0
  100. data/spec/models/video.rb +9 -0
  101. data/spec/models/wiki_page.rb +6 -0
  102. data/spec/spec_helper.rb +43 -0
  103. data/spec/support/authentication.rb +29 -0
  104. data/spec/unit/mongoid/criterion/complex_spec.rb +15 -0
  105. data/spec/unit/mongoid/criterion/inclusion_spec.rb +0 -0
  106. data/spec/unit/mongoid/criterion/near_spacial_spec.rb +39 -0
  107. data/spec/unit/mongoid/criterion/within_spacial_spec.rb +52 -0
  108. data/spec/unit/mongoid/spacial/formulas_spec.rb +37 -0
  109. data/spec/unit/mongoid/spacial_spec.rb +6 -0
  110. metadata +374 -0
@@ -0,0 +1,37 @@
1
+ require "spec_helper"
2
+
3
+ describe Mongoid::Spacial::Formulas do
4
+ context "#n_vector" do
5
+ it {
6
+ bna = [-86.67, 36.12]
7
+ lax = [-118.40, 33.94]
8
+ dist1 = Mongoid::Spacial::Formulas.n_vector(bna, lax)
9
+ dist2 = Mongoid::Spacial::Formulas.n_vector(lax, bna)
10
+
11
+ # target is 0.45306
12
+ dist1.should be_within(0.00001).of(0.45306)
13
+ dist2.should be_within(0.00001).of(0.45306)
14
+ }
15
+ it {
16
+ # actual distance 2471.788
17
+ jfk = [-73.77694444, 40.63861111 ]
18
+ lax = [-118.40, 33.94]
19
+
20
+ dist = Mongoid::Spacial::Formulas.n_vector(jfk, lax) * Mongoid::Spacial.earth_radius[:mi]
21
+ dist.should be_within(1).of(2469)
22
+ }
23
+ end
24
+
25
+ context "#haversine" do
26
+ it {
27
+ # actual distance 2471.788
28
+ jfk = [-73.77694444, 40.63861111 ]
29
+ lax = [-118.40, 33.94]
30
+
31
+ dist = Mongoid::Spacial::Formulas.haversine(jfk, lax) * Mongoid::Spacial.earth_radius[:mi]
32
+ dist.should be_within(1).of(2469)
33
+ }
34
+ end
35
+
36
+ end
37
+
@@ -0,0 +1,6 @@
1
+ require "spec_helper"
2
+
3
+ describe Mongoid::Spacial do
4
+ describe '#distance' do
5
+ end
6
+ end
metadata ADDED
@@ -0,0 +1,374 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cb_mongoid_spacial
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.16
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ryan Ong
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-06-13 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: mongoid
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 2.1.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 2.1.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: activesupport
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '3.0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '3.0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: yard
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 0.6.0
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.6.0
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '2.3'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '2.3'
78
+ - !ruby/object:Gem::Dependency
79
+ name: simplecov
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: mocha
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: will_paginate
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: kaminari
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ description: mongoid_spacial simplifies spacial calculations. Adds integration into
143
+ mongoid so pagination and other function continue to work. It adds symbol extentions
144
+ to simplify query creation.
145
+ email:
146
+ - ryanong@gmail.com
147
+ executables: []
148
+ extensions: []
149
+ extra_rdoc_files: []
150
+ files:
151
+ - .document
152
+ - .gitignore
153
+ - .rspec
154
+ - Gemfile
155
+ - LICENSE.txt
156
+ - README.md
157
+ - Rakefile
158
+ - lib/mongoid_spacial.rb
159
+ - lib/mongoid_spacial/contexts/mongo.rb
160
+ - lib/mongoid_spacial/criteria.rb
161
+ - lib/mongoid_spacial/criterion.rb
162
+ - lib/mongoid_spacial/criterion/complex.rb
163
+ - lib/mongoid_spacial/criterion/inclusion.rb
164
+ - lib/mongoid_spacial/criterion/near_spacial.rb
165
+ - lib/mongoid_spacial/criterion/within_spacial.rb
166
+ - lib/mongoid_spacial/extentions/hash/criteria_helpers.rb
167
+ - lib/mongoid_spacial/extentions/symbol/inflections.rb
168
+ - lib/mongoid_spacial/field_option.rb
169
+ - lib/mongoid_spacial/finders.rb
170
+ - lib/mongoid_spacial/spacial.rb
171
+ - lib/mongoid_spacial/spacial/core_ext.rb
172
+ - lib/mongoid_spacial/spacial/document.rb
173
+ - lib/mongoid_spacial/spacial/formulas.rb
174
+ - lib/mongoid_spacial/spacial/geo_near_results.rb
175
+ - lib/mongoid_spacial/spacial/version.rb
176
+ - mongoid_spacial.gemspec
177
+ - spec/config/mongod.conf
178
+ - spec/config/mongoid.yml
179
+ - spec/functional/mongoid/contexts/mongo_spec.rb
180
+ - spec/functional/mongoid/criterion/inclusion_spec.rb
181
+ - spec/functional/mongoid/spacial/geo_near_results_spec.rb
182
+ - spec/functional/mongoid/spacial_spec.rb
183
+ - spec/models/account.rb
184
+ - spec/models/acolyte.rb
185
+ - spec/models/address.rb
186
+ - spec/models/address_component.rb
187
+ - spec/models/agent.rb
188
+ - spec/models/alert.rb
189
+ - spec/models/animal.rb
190
+ - spec/models/answer.rb
191
+ - spec/models/bar.rb
192
+ - spec/models/birthday.rb
193
+ - spec/models/book.rb
194
+ - spec/models/business.rb
195
+ - spec/models/callbacks.rb
196
+ - spec/models/category.rb
197
+ - spec/models/circus.rb
198
+ - spec/models/comment.rb
199
+ - spec/models/country_code.rb
200
+ - spec/models/description.rb
201
+ - spec/models/division.rb
202
+ - spec/models/drug.rb
203
+ - spec/models/employer.rb
204
+ - spec/models/entry.rb
205
+ - spec/models/event.rb
206
+ - spec/models/favorite.rb
207
+ - spec/models/fruits.rb
208
+ - spec/models/game.rb
209
+ - spec/models/ghost.rb
210
+ - spec/models/house.rb
211
+ - spec/models/inheritance.rb
212
+ - spec/models/league.rb
213
+ - spec/models/location.rb
214
+ - spec/models/login.rb
215
+ - spec/models/membership.rb
216
+ - spec/models/mixed_drink.rb
217
+ - spec/models/name.rb
218
+ - spec/models/namespacing.rb
219
+ - spec/models/observed.rb
220
+ - spec/models/override.rb
221
+ - spec/models/owner.rb
222
+ - spec/models/page.rb
223
+ - spec/models/page_question.rb
224
+ - spec/models/paranoid_post.rb
225
+ - spec/models/parents.rb
226
+ - spec/models/patient.rb
227
+ - spec/models/person.rb
228
+ - spec/models/pet.rb
229
+ - spec/models/pet_owner.rb
230
+ - spec/models/phone.rb
231
+ - spec/models/player.rb
232
+ - spec/models/post.rb
233
+ - spec/models/preference.rb
234
+ - spec/models/question.rb
235
+ - spec/models/quiz.rb
236
+ - spec/models/rating.rb
237
+ - spec/models/river.rb
238
+ - spec/models/role.rb
239
+ - spec/models/service.rb
240
+ - spec/models/shelf.rb
241
+ - spec/models/slave_address_numbers.rb
242
+ - spec/models/survey.rb
243
+ - spec/models/tag.rb
244
+ - spec/models/tracking_id_validation_history.rb
245
+ - spec/models/translation.rb
246
+ - spec/models/tree.rb
247
+ - spec/models/user.rb
248
+ - spec/models/user_account.rb
249
+ - spec/models/vet_visit.rb
250
+ - spec/models/video.rb
251
+ - spec/models/wiki_page.rb
252
+ - spec/spec_helper.rb
253
+ - spec/support/authentication.rb
254
+ - spec/unit/mongoid/criterion/complex_spec.rb
255
+ - spec/unit/mongoid/criterion/inclusion_spec.rb
256
+ - spec/unit/mongoid/criterion/near_spacial_spec.rb
257
+ - spec/unit/mongoid/criterion/within_spacial_spec.rb
258
+ - spec/unit/mongoid/spacial/formulas_spec.rb
259
+ - spec/unit/mongoid/spacial_spec.rb
260
+ homepage: https://github.com/ryanong/mongoid_spacial
261
+ licenses: []
262
+ post_install_message:
263
+ rdoc_options: []
264
+ require_paths:
265
+ - lib
266
+ required_ruby_version: !ruby/object:Gem::Requirement
267
+ none: false
268
+ requirements:
269
+ - - ! '>='
270
+ - !ruby/object:Gem::Version
271
+ version: '0'
272
+ segments:
273
+ - 0
274
+ hash: -1074450398889313431
275
+ required_rubygems_version: !ruby/object:Gem::Requirement
276
+ none: false
277
+ requirements:
278
+ - - ! '>='
279
+ - !ruby/object:Gem::Version
280
+ version: '0'
281
+ segments:
282
+ - 0
283
+ hash: -1074450398889313431
284
+ requirements: []
285
+ rubyforge_project:
286
+ rubygems_version: 1.8.24
287
+ signing_key:
288
+ specification_version: 3
289
+ summary: A Mongoid Extention that simplifies and adds support for MongoDB Geo Spacial
290
+ Calculations.
291
+ test_files:
292
+ - spec/config/mongod.conf
293
+ - spec/config/mongoid.yml
294
+ - spec/functional/mongoid/contexts/mongo_spec.rb
295
+ - spec/functional/mongoid/criterion/inclusion_spec.rb
296
+ - spec/functional/mongoid/spacial/geo_near_results_spec.rb
297
+ - spec/functional/mongoid/spacial_spec.rb
298
+ - spec/models/account.rb
299
+ - spec/models/acolyte.rb
300
+ - spec/models/address.rb
301
+ - spec/models/address_component.rb
302
+ - spec/models/agent.rb
303
+ - spec/models/alert.rb
304
+ - spec/models/animal.rb
305
+ - spec/models/answer.rb
306
+ - spec/models/bar.rb
307
+ - spec/models/birthday.rb
308
+ - spec/models/book.rb
309
+ - spec/models/business.rb
310
+ - spec/models/callbacks.rb
311
+ - spec/models/category.rb
312
+ - spec/models/circus.rb
313
+ - spec/models/comment.rb
314
+ - spec/models/country_code.rb
315
+ - spec/models/description.rb
316
+ - spec/models/division.rb
317
+ - spec/models/drug.rb
318
+ - spec/models/employer.rb
319
+ - spec/models/entry.rb
320
+ - spec/models/event.rb
321
+ - spec/models/favorite.rb
322
+ - spec/models/fruits.rb
323
+ - spec/models/game.rb
324
+ - spec/models/ghost.rb
325
+ - spec/models/house.rb
326
+ - spec/models/inheritance.rb
327
+ - spec/models/league.rb
328
+ - spec/models/location.rb
329
+ - spec/models/login.rb
330
+ - spec/models/membership.rb
331
+ - spec/models/mixed_drink.rb
332
+ - spec/models/name.rb
333
+ - spec/models/namespacing.rb
334
+ - spec/models/observed.rb
335
+ - spec/models/override.rb
336
+ - spec/models/owner.rb
337
+ - spec/models/page.rb
338
+ - spec/models/page_question.rb
339
+ - spec/models/paranoid_post.rb
340
+ - spec/models/parents.rb
341
+ - spec/models/patient.rb
342
+ - spec/models/person.rb
343
+ - spec/models/pet.rb
344
+ - spec/models/pet_owner.rb
345
+ - spec/models/phone.rb
346
+ - spec/models/player.rb
347
+ - spec/models/post.rb
348
+ - spec/models/preference.rb
349
+ - spec/models/question.rb
350
+ - spec/models/quiz.rb
351
+ - spec/models/rating.rb
352
+ - spec/models/river.rb
353
+ - spec/models/role.rb
354
+ - spec/models/service.rb
355
+ - spec/models/shelf.rb
356
+ - spec/models/slave_address_numbers.rb
357
+ - spec/models/survey.rb
358
+ - spec/models/tag.rb
359
+ - spec/models/tracking_id_validation_history.rb
360
+ - spec/models/translation.rb
361
+ - spec/models/tree.rb
362
+ - spec/models/user.rb
363
+ - spec/models/user_account.rb
364
+ - spec/models/vet_visit.rb
365
+ - spec/models/video.rb
366
+ - spec/models/wiki_page.rb
367
+ - spec/spec_helper.rb
368
+ - spec/support/authentication.rb
369
+ - spec/unit/mongoid/criterion/complex_spec.rb
370
+ - spec/unit/mongoid/criterion/inclusion_spec.rb
371
+ - spec/unit/mongoid/criterion/near_spacial_spec.rb
372
+ - spec/unit/mongoid/criterion/within_spacial_spec.rb
373
+ - spec/unit/mongoid/spacial/formulas_spec.rb
374
+ - spec/unit/mongoid/spacial_spec.rb