grape-listing 2.0.0.pre.beta.4 → 2.0.0.pre.beta.5

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,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ad235bb148c378a4de82efee7fd0bec721702eaa88410c4ae9169cd627e49269
4
- data.tar.gz: a4527257218d09dd016170a761784e4f43581121c07be843350dba0a01da143f
3
+ metadata.gz: 77d58fbe9510c3ff0cbf2f70b4f4b87a8988259d698b6bebb5af37a04aa298f2
4
+ data.tar.gz: de6a723a92e0247428961bd914c003f4b32decc9079652edf6dd3559957161d7
5
5
  SHA512:
6
- metadata.gz: a7caf71761d95963a2dd16dea5b476b1659d047a0153552b2188c690b6439e97336a5353af9b9a6a5fd07a54ebf25c8c006ad04bcec03784f40181c50a8a8d03
7
- data.tar.gz: ba501abb3d5d1375755543bb1bf15e1293df080d8db99fc3045994f498ec0dc4a380f44c262a9f6b0b7845a43acc097986c71008bf3fdb887ea42fcd85707223
6
+ metadata.gz: 3f8c09ef3ff82bc903f9c0ae198ecdf50cd229b42d2edb1244b49c166ec093e1434c6bfcc8279dccd92a8bbf6d27cf1d5dba082709cdca508ffcdcc656f4ddf5
7
+ data.tar.gz: 7b68865cd1ab76d04b8d33b4a94bc14dafc0ed82dd35d4eda459f05550356f980d323366359679febda0470b48f2c30d39491d71f363a0c45f03d0370ce43fa5
@@ -1,3 +1,3 @@
1
1
  module GrapeListing
2
- VERSION = '2.0.0-beta.4'.freeze
2
+ VERSION = '2.0.0-beta.5'.freeze
3
3
  end
@@ -49,6 +49,8 @@ module GrapeListing
49
49
  date_clause(subject, condition, operator, value)
50
50
  when :boolean
51
51
  boolean_clause(subject, condition, operator, value)
52
+ when :enum
53
+ enum_clause(subject, condition, operator, value)
52
54
  end
53
55
 
54
56
  # применение запроса для фильтрации
@@ -120,6 +122,15 @@ module GrapeListing
120
122
  end
121
123
  end
122
124
 
125
+ def enum_clause(subject, condition, operator, value)
126
+ case operator
127
+ when EQUAL
128
+ enum_equal(subject, condition, value)
129
+ when IN
130
+ enum_in(subject, condition, value)
131
+ end
132
+ end
133
+
123
134
  def string_present(subject, condition)
124
135
  case condition
125
136
  when IS
@@ -312,5 +323,25 @@ module GrapeListing
312
323
  end
313
324
  end
314
325
 
326
+ def enum_equal(subject, condition, value)
327
+ case condition
328
+ when IS
329
+ "#{subject} = '#{value}'"
330
+ when NOT
331
+ "#{subject} != '#{value}'"
332
+ end
333
+ end
334
+
335
+ def enum_in(subject, condition, value)
336
+ opts = value.map { |i| "'#{i}'" }.join(',')
337
+
338
+ case condition
339
+ when IS
340
+ "#{subject} IN (#{opts})"
341
+ when NOT
342
+ "#{subject} NOT IN (#{opts})"
343
+ end
344
+ end
345
+
315
346
  end
316
347
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape-listing
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.pre.beta.4
4
+ version: 2.0.0.pre.beta.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Павел Бабин