caboose-cms 0.4.98 → 0.4.99

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.
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