mongoid_spacial 0.2.6 → 0.2.7

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.md CHANGED
@@ -75,7 +75,7 @@ Mongoid Geo has extended all built in spacial symbol extentions
75
75
  * River.where(:source.near => [[-73.98, 40.77],5]) # sets max distance of 5
76
76
  * River.where(:source.near => {:point => [-73.98, 40.77], :max => 5}) # sets max distance of 5
77
77
  * River.where(:source.near(:sphere) => [[-73.98, 40.77],5]) # sets max distance of 5 radians
78
- * River.where(:source.near(:sphere) => {:point => [-73.98, 40.77], :max => 5, :unit => :km}) # sets max distance of 5 km
78
+ * River.where(:source.near(:sphere) => {:point => [-73.98, 40.77], :max => 5, :unit => :km}) # sets max distance of 5 km
79
79
  * River.where(:source.near(:sphere) => [-73.98, 40.77])
80
80
  * within
81
81
  * River.where(:source.within(:box) => [[-73.99756,40.73083], [-73.988135,40.741404]])
@@ -94,7 +94,7 @@ River.where(:name=>'hudson').geo_near({:lat => 40.73083, :lng => -73.99756})
94
94
  # geo\_near accepts a few parameters besides a point
95
95
  # :num = limit
96
96
  # :query = where
97
- # :unit - [:km, :m, :mi, :ft] - converts :max\_distance to appropriate values and automatically sets :distance\_multiplier. accepts
97
+ # :unit - [:km, :m, :mi, :ft] - converts :max\_distance to appropriate values and automatically sets :distance\_multiplier. accepts
98
98
  # :max\_distance - Integer
99
99
  # :distance\_multiplier - Integer
100
100
  # :spherical - true - To enable spherical calculations
@@ -130,15 +130,18 @@ River.geo_near([-73.99756,40.73083], :page => 1)
130
130
  # #page(page\_number, opts = {})
131
131
  # opts:
132
132
  # :per\_page
133
- # :paginator
133
+ # :paginator
134
134
  # #per(per\_page\_number, opts = {})
135
135
  # opts:
136
136
  # :page
137
137
  # :paginator
138
138
  #
139
139
  # both return a GeoNearResults, which is really just a modified Array
140
- # #per really just #page but just moves the options around
141
- River.geo_near([-73.99756,40.73083]).per(25).page(1)
140
+ # #per really just #page but just moves the options around
141
+ rivers = River.geo_near([-73.99756,40.73083]).sort_by!{|r| r.modified_distance}
142
+ rivers = rivers.per(25).page(1)
143
+ rivers = rivers.page(5, :original => 1) # by adding the original option you can re-paginate to any area.
144
+ rivers.reset! # resets the object to it is original state right after query.
142
145
  ```
143
146
 
144
147
  Thanks
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.6
1
+ 0.2.7
@@ -62,6 +62,7 @@ module Mongoid #:nodoc:
62
62
  else
63
63
  Mongoid::Spacial.default_per_page
64
64
  end
65
+ opts[:per_page] = opts[:per_page].to_i
65
66
  end
66
67
 
67
68
  end
@@ -50,11 +50,11 @@ module Mongoid
50
50
  end
51
51
 
52
52
  def page(page, options = {})
53
- new_collection = self.dup
53
+ new_collection = self.clone
54
54
 
55
55
  options = self.opts.merge(options)
56
56
 
57
- options[:page] = page || 1
57
+ options[:page] = (page) ? page.to_i : 1
58
58
 
59
59
  options[:paginator] ||= Mongoid::Spacial.paginator()
60
60
 
@@ -67,9 +67,15 @@ module Mongoid
67
67
  Mongoid::Spacial.default_per_page
68
68
  end
69
69
 
70
+ options[:per_page] = options[:per_page].to_i
70
71
 
71
72
  start = (options[:page]-1)*options[:per_page] # assuming current_page is 1 based.
72
- new_collection.replace(@_original_array[@opts[:skip]+start, options[:per_page]] || [])
73
+
74
+ if options[:original]
75
+ new_collection.replace(@_original_array[@opts[:skip]+start, options[:per_page]] || [])
76
+ else
77
+ new_collection.slice!(@opts[:skip]+start, options[:per_page])
78
+ end
73
79
 
74
80
  new_collection.opts[:page] = options[:page]
75
81
  new_collection.opts[:paginator] = options[:paginator]
@@ -82,6 +88,20 @@ module Mongoid
82
88
  self.page(current_page, :per_page => num)
83
89
  end
84
90
 
91
+ def reset!
92
+ self.replace(@_original_array)
93
+ new_collection.opts[:page] = nil
94
+ new_collection.opts[:paginator] = nil
95
+ new_collection.opts[:per_page] = nil
96
+ self
97
+ end
98
+
99
+ def reset
100
+ clone = self.clone
101
+ clone.reset!
102
+ clone
103
+ end
104
+
85
105
  def total_entries
86
106
  @opts[:total_entries]
87
107
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{mongoid_spacial}
8
- s.version = "0.2.6"
8
+ s.version = "0.2.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = [%q{Ryan Ong}]
12
- s.date = %q{2011-06-28}
12
+ s.date = %q{2011-07-11}
13
13
  s.description = %q{A Mongoid Extention that simplifies and adds support for MongoDB Geo Spacial Calculations.}
14
14
  s.email = %q{ryanong@gmail.com}
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: mongoid_spacial
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.6
5
+ version: 0.2.7
6
6
  platform: ruby
7
7
  authors:
8
8
  - Ryan Ong
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-06-28 00:00:00 Z
13
+ date: 2011-07-11 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: mongoid
@@ -264,7 +264,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
264
264
  requirements:
265
265
  - - ">="
266
266
  - !ruby/object:Gem::Version
267
- hash: 1525314815871723941
267
+ hash: 2152929037743712871
268
268
  segments:
269
269
  - 0
270
270
  version: "0"