rad_core_rails 0.4.1 → 0.5.0

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: 20894cdcbbc09b23a7271f946adefd95783ba644190aed1d5a8589b3f2f3c8ad
4
- data.tar.gz: 36cfbec37c2e80c9ce756122269349718dae958928e9eac1eb469900de312873
3
+ metadata.gz: 19eb34cf021bf71626e4dffbf85549af5d4f1a66c6e04690e7652a6b716d185b
4
+ data.tar.gz: 2c5a597b5884b9a8d6cd8ac11eba03e31eeab05f67e04d300542a3fca6f51872
5
5
  SHA512:
6
- metadata.gz: a09c99c1805728bb164a4676d3877ed571686d062bb46bdd787df242f1dc03861371a28d01796079549c36c29666598f587896aa14e0070bc805fe5f09e3faa1
7
- data.tar.gz: 5d0a8c6cda29036a9ea0403bc16a3e7b8ecbe57b3bcc0ecc3da8e378d418900506f9cd394e98cd3bd8b58cd6f0b11c588fd563395ce370a3d368a2bd4ea57a7c
6
+ metadata.gz: 39a39f01993527ae34221b035cd864a4dd35bb6240b54c6e71dded4793f7a098aee0c47a744e72d7a361214a05fc64ee79d2664e8303cf4262c8f36f7dae701c
7
+ data.tar.gz: ef0ec46b1c1bf8563cdef0747cac98cc95e0c12bc114f0e3d2d76271927f18d6621f53f77a55ecded26351fb59ecf05547cc82261ef16b0d44921948dcd09f48
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RadCoreRails
2
4
  module QueryGenerator
3
5
  extend ActiveSupport::Concern
@@ -5,7 +7,7 @@ module RadCoreRails
5
7
  class_methods do
6
8
  attr_reader :searchable_columns
7
9
 
8
- def searchable(columns=[])
10
+ def searchable(columns = [])
9
11
  @searchable_columns = handle_columns(columns)
10
12
  end
11
13
 
@@ -43,7 +45,7 @@ module RadCoreRails
43
45
  search.split(' ').each do |term|
44
46
  columns = []
45
47
  searchable_columns.each do |col|
46
- columns.push("(REPLACE(LOWER(#{col}), ' ', '') ILIKE ?)")
48
+ columns.push("(LOWER(#{col}) ILIKE ?)")
47
49
  args.push '%' + term.downcase.strip + '%'
48
50
  end
49
51
  clause.push '(' + columns.join(' OR ') + ')'
@@ -64,25 +66,29 @@ module RadCoreRails
64
66
  end
65
67
 
66
68
  def generate_model_clause(column_name, filter)
67
- str = "(#{column_name} = ANY(?))"
68
- args = []
69
- args << '{' + filter[:values].join(', ') + '}'
69
+ str = "(#{column_name} = ANY(ARRAY[?]))"
70
+ args = [filter[:values]]
70
71
 
71
72
  [str, args]
72
73
  end
73
74
 
74
75
  def generate_array_clause(column_name, filter)
75
- str = "(#{column_name} && (?))"
76
- args = []
77
- args << '{' + filter[:values].join(', ') + '}'
76
+ str = "(#{column_name} && ARRAY[?])"
77
+ args = [filter[:values]]
78
78
 
79
79
  [str, args]
80
80
  end
81
81
 
82
82
  def generate_reference_link_clause(link_out_type, filter)
83
83
  str = "(reference_links.link_out_type = '#{link_out_type}' AND reference_links.link_out_id = ANY(?))"
84
- args = []
85
- args << '{' + filter[:values].join(', ') + '}'
84
+ args = [filter[:values]]
85
+
86
+ [str, args]
87
+ end
88
+
89
+ def generate_jsonb_array_clause(unique_filter_key, column_name, filter)
90
+ str = "(#{column_name} ?| ARRAY[:#{unique_filter_key}])"
91
+ args = [{ "#{unique_filter_key}": filter[:values] }]
86
92
 
87
93
  [str, args]
88
94
  end
@@ -143,14 +149,14 @@ module RadCoreRails
143
149
 
144
150
  def handle_columns(columns)
145
151
  if columns.empty?
146
- return self.columns.select{|c| c.type == :string}.map{|c| "#{self.table_name}.#{c.name}"}
152
+ return self.columns.select { |c| c.type == :string }.map { |c| "#{table_name}.#{c.name}" }
147
153
  end
148
154
 
149
155
  columns.map do |c|
150
- splitted_c = c.split(".")
156
+ splitted_c = c.split('.')
151
157
 
152
- if splitted_c.size == 1 && splitted_c.first != self.table_name
153
- "#{self.table_name}.#{c}"
158
+ if splitted_c.size == 1 && splitted_c.first != table_name
159
+ "#{table_name}.#{c}"
154
160
  else
155
161
  c
156
162
  end
@@ -158,4 +164,4 @@ module RadCoreRails
158
164
  end
159
165
  end
160
166
  end
161
- end
167
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RadCoreRails
2
- VERSION = "0.4.1"
4
+ VERSION = '0.5.0'
3
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.4.1
4
+ version: 0.5.0
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-07-10 00:00:00.000000000 Z
11
+ date: 2020-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport