caboose-cms 0.4.98 → 0.4.99

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZjYzN2Q2YWFlN2Y5NDEwNTJlMzhhYWY4MTUyMWU5YTg4NTlhMjhiYQ==
4
+ ZGExNDQyODU4OTg2YmNhMDQyNDNlMThiYWIyOTY0NjAxMjU2MzkyNA==
5
5
  data.tar.gz: !binary |-
6
- MTMwYjNkNzg1YjkyYzQ3OGNjMDEzMmQ5NThiMTI2YjkyMzc1OTM2MQ==
6
+ MjcwZThhMzJmNjkwNWM5NGIyN2U2MjIwOTAzN2ZjNDYyYmZkNTc0OA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- MGEwZWMxZDJiZmJkYWQ1ODVjYTY3NmI3MmM1YmZiZWNjYWM2MTA4M2E5YjNj
10
- MTYxMjhmNzljNzVlZWNjZGUyNWFhNDhiNzhiMjFlOTU4ZjYyMzgwMGQzZjA3
11
- MDc1MzNjZTM0ZDQzNTExMjQ1ODYxN2M0Mzk4Y2M0NmIxZDVlMzY=
9
+ ZmQ0MWYxNzQ0Zjc5NjE3Yzk2Y2JhMTZjNDFjYmI4YTA5MTJlNWRmODY2Zjgz
10
+ NmFmYzViMDMwOWMyZGE5MWIxZTNkZjdiMmRhNjJhZjA3ZWNmZWQ3YmQ5ODI2
11
+ ZmFkMjI5ZWQ2ZDk2MWNmOTk4YjkyYjczZjIyMjMyOTVhZWFiYWM=
12
12
  data.tar.gz: !binary |-
13
- YTkwN2YxYTYyOWJiYzU5ZjQ1NTE1YTIyNmUyODJlODQ4NDk4ZDVjMzBhYjdi
14
- YWVhMmZhYTcwY2FkZDQ3NzcyZTc5OTQ5YjA3M2QxNDYxYjM3YzVjYWRkM2Ex
15
- NjlmNGJmZDBjZmI0YjI3OWYzYTkwNjJkMmMwMTI5N2Y2M2NlN2I=
13
+ YmI2MzlhMzM0ZTJmYTgxMWMwMjIwNjVmZDY1ZDBlMjIwNjQ5YmJhNDJlOWZl
14
+ YmI0ZWExOGVjYTdmNDVjOTc3NjhiYTU4NGI5MjQ0NzJiYzJmOGZiYjFjMzI5
15
+ YjdkYjVkMzllNDUxOTE4Mzg5Y2Y4M2I2OGMxNzFjMTI0MjI3ZDE=
@@ -21,7 +21,7 @@ module Caboose
21
21
  # itemsPerPage: Number of items you want to show per page. Defaults to 10 if not present.
22
22
  # page: Current page number. Defaults to 0 if not present.
23
23
  #
24
- attr_accessor :original_params, :params, :options, :custom_url_vars
24
+ attr_accessor :original_params, :params, :options, :custom_url_vars, :post_get
25
25
 
26
26
  #def initialize(post_get, params = nil, options = nil, &custom_url_vars = nil)
27
27
  def initialize(post_get, params = nil, options = nil)
@@ -31,6 +31,7 @@ module Caboose
31
31
 
32
32
  # Note: a few keys are required:
33
33
  # base_url, page, itemCount, itemsPerPage
34
+ @post_get = post_get
34
35
  @original_params = {}
35
36
  @params = {}
36
37
  @options = {
@@ -83,7 +84,10 @@ module Caboose
83
84
  end
84
85
 
85
86
  def set_item_count
86
- @options['item_count'] = model_with_includes.where(where).count
87
+ m = model_with_includes.where(self.where)
88
+ n = self.near
89
+ m = m.near(n[0], n[1]) if n
90
+ @options['item_count'] = m.count
87
91
  end
88
92
 
89
93
  def model_with_includes
@@ -146,21 +150,29 @@ module Caboose
146
150
  end
147
151
 
148
152
  def items
149
- assoc = model_with_includes.where(where)
153
+ assoc = model_with_includes.where(self.where)
154
+ n = self.near
155
+ assoc = assoc.near(n[0], n[1]) if n
150
156
  if @options['items_per_page'] != -1
151
- assoc = assoc.limit(limit).offset(offset)
157
+ assoc = assoc.limit(self.limit).offset(self.offset)
152
158
  end
153
- return assoc.reorder(reorder).all
159
+ return assoc.reorder(self.reorder).all
154
160
  end
155
161
 
156
162
  def all_items
157
- return model_with_includes.where(where).all
163
+ m = model_with_includes.where(self.where)
164
+ n = self.near
165
+ m = m.near(n[0], n[1]) if n
166
+ return m.all
158
167
  end
159
168
 
160
169
  def item_values(attribute)
161
170
  arr = []
162
- model_with_includes.where(where).all.each do |m|
163
- arr << m[attribute]
171
+ m = model_with_includes.where(self.where)
172
+ n = self.near
173
+ m = m.near(n[0], n[1]) if n
174
+ m.all.each do |m2|
175
+ arr << m2[attribute]
164
176
  end
165
177
  return arr.uniq
166
178
  end
@@ -305,6 +317,7 @@ module Caboose
305
317
  table = @options['model'].constantize.table_name
306
318
  @params.each do |k,v|
307
319
  next if v.nil? || (v.kind_of?(String) && v.length == 0)
320
+ next if k.ends_with?('_near')
308
321
 
309
322
  col = nil
310
323
  if @options['includes'] && @options['includes'].include?(k)
@@ -396,6 +409,21 @@ module Caboose
396
409
  return sql
397
410
  end
398
411
 
412
+ def near
413
+ @params.each do |k,v|
414
+ next if !k.ends_with?('_near')
415
+ arr = k.split('_')
416
+ if arr.length == 3
417
+ location = @post_get[arr[0]]
418
+ radius = @post_get[arr[1]]
419
+ v = [location, radius] if location && radius && location.strip.length > 0 && radius.strip.length > 0
420
+ end
421
+ next if v.nil? || !v.is_a?(Array) || v.count != 2
422
+ return v
423
+ end
424
+ return nil
425
+ end
426
+
399
427
  def limit
400
428
  return @options['items_per_page'].to_i
401
429
  end
@@ -1,3 +1,3 @@
1
1
  module Caboose
2
- VERSION = '0.4.98'
2
+ VERSION = '0.4.99'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caboose-cms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.98
4
+ version: 0.4.99
5
5
  platform: ruby
6
6
  authors:
7
7
  - William Barry
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-27 00:00:00.000000000 Z
11
+ date: 2014-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails