rad_core_rails 0.5.2 → 0.5.3

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: 478fee8c5de287a633bff51aee69953c36f928392d6c1ac283e093f963e3733f
4
- data.tar.gz: 9a09f3052e99bb2c108093771fa2aca71845463ca9902e80bef82e586817bcac
3
+ metadata.gz: 542155bff8ff325428b30760ef13fda51209abd8d3f828fe6f4e8d6ebaa27c79
4
+ data.tar.gz: 31a9ee127dd3dd4639df4f8504083521f6587f1d67d9ed64498ef9b38e163627
5
5
  SHA512:
6
- metadata.gz: e01c9c2a528bb6819bd2857aed24c2eb560ba6be63498a62c68a21a7ea820bcb55ca75aca7d6ea1e6828f479ba9dad81a69427ce2ca079317bbbc860f2977bb8
7
- data.tar.gz: 8f42802719401dfdc5c0a9b3e90eef16f2e81e5258a4e25fbd10453f931fb320129c256974f6f63fb4ec9e6f8ff0f73bd5a2470bd315d34eeead9839de287893
6
+ metadata.gz: 5d0404693b4bad560238af7f4c459fd3cda9075ac720163b818d38e8d12e49bcc1cf14a503dc4f09a361eec550f652b8936ad476b3da36e980073a8a67c2eae0
7
+ data.tar.gz: e9a5a0ba37595e5a3ab1326b9af740bab64305801867660275e63b3e98cebf0a7d5d2d3191b3fe8abebb336382262342dcc95c82ae2ecb4af64018a8917d9f05
@@ -43,9 +43,11 @@ module RadCoreRails
43
43
  if search.present? && searchable_columns.is_a?(Array)
44
44
  search_term_size = search.split(' ').length
45
45
  or_term_size = search.split(' ').select { |term| term.include?('+') }.length
46
- operand = search_term_size == or_term_size ? 'OR' : 'AND'
46
+ just_ors = search_term_size == or_term_size
47
+ operand = just_ors ? 'OR' : 'AND'
48
+ search_terms = just_ors == true ? search.split(' ') : search.split(' ').select { |term| !term.include?('+') }
47
49
  clause = []
48
- search.split(' ').each do |term|
50
+ search_terms.each do |term|
49
51
  columns = []
50
52
  searchable_columns.each do |col|
51
53
  columns.push("(LOWER(#{col}) ILIKE ?)")
@@ -68,8 +70,12 @@ module RadCoreRails
68
70
  [str, args]
69
71
  end
70
72
 
71
- def generate_model_clause(column_name, filter)
72
- str = "(#{column_name} #{filter[:option]} ANY(ARRAY[?]))"
73
+ def generate_model_clause(column_name, filter, optional_exclusion_clause = nil)
74
+ str = if optional_exclusion_clause.present? && filter[:option] == '!='
75
+ optional_exclusion_clause
76
+ else
77
+ "(#{column_name} #{filter[:option]} ANY(ARRAY[?]))"
78
+ end
73
79
  args = [filter[:values]]
74
80
 
75
81
  [str, args]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RadCoreRails
4
- VERSION = '0.5.2'
4
+ VERSION = '0.5.3'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rad_core_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oleksandr Poltavets, James Marrs
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-11-16 00:00:00.000000000 Z
11
+ date: 2020-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport