like_query 1.0.2 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99c2aefb292f6ab08cbe862377d063d42a9a6a032592358593386e0e61ca3295
4
- data.tar.gz: 40165a4b542f4cff88af6a2c5c3d92e4af0e8c92ab40fec54c753ab89e38b12c
3
+ metadata.gz: 7c10ed68deba1d81dbd664c728bf541ceff1b523a6c3795b58f7c6a6305db437
4
+ data.tar.gz: 698002383855f9f9edefcc20b4261bc47de3385fc345e96e596b60b43240f8e6
5
5
  SHA512:
6
- metadata.gz: eaa27b8325b8680cfe13f44717102b6ab50350a426f0c3bd72f2dd72d2dae4f3a6146a000c29cad1ca3d74072ecaaa78b19dd959c415fd9d779cb9a1cbfaa588
7
- data.tar.gz: c69eb3ab35d8428814b272e14f4bef332386fdae76354ff1b3eb7d7f3f9a7d646c1f5e9dd42cb6c0bd33f9de3a2e121e3ae5173bc4b2c85c4c9e97bf0e3fa616
6
+ metadata.gz: 4509c37d1336828313198a49efd107b2dc976b201b7a67e60b63cc0641204189d4f4f4e8261c0797c2761c178fa8c859b1aecf5a612a58924f16e750df1b1481
7
+ data.tar.gz: aced7620d3b09a5bf3672e9793b87b75d84ebe5c40d222369e6d158968773a28e6c56921538103db10a3af0f9cef0094ab387490ea20eecb742ec06124d19bc1
data/README.md CHANGED
@@ -116,13 +116,18 @@ Book.like('author.name:marc', [{author: [:name]}])
116
116
  # => find books where author.name includes "marc"
117
117
  ```
118
118
 
119
- LikeQuery raises a error if invalid column name is given, vor example:
119
+ LikeQuery raises a error if invalid column name is given, for example:
120
120
 
121
121
  ```ruby
122
122
  Book.like('title2:history', [:title, :price])
123
123
  # => raises a error like column «title2» is not present within available columns: «title, price»
124
+ # => can be translated/changed by setting locale like_query.column_not_available_error
125
+ # => Format: "column «%<column>s» is not present within available columns: «%<available_columns>s»"
124
126
  ```
125
127
 
128
+ This behaviour can be shut off/on by `Rails.configuration.x.like_query.column_search = true/false`
129
+ And overriden by `Book.like(..., column_search: true/false)`
130
+
126
131
  There is a helper for allowing the user translating the column names:
127
132
 
128
133
  ```ruby
@@ -1,7 +1,12 @@
1
1
  module LikeQuery
2
2
  module ModelExtensions
3
3
 
4
- def like(search_string, schema = nil, debug: false)
4
+ def like(search_string, schema = nil, debug: false, column_search: true)
5
+
6
+ conf_cs = Rails.configuration.x.like_query.column_search
7
+ if conf_cs.present?
8
+ column_search = conf_cs
9
+ end
5
10
 
6
11
  search_string = '' if !search_string
7
12
  search_string = search_string.to_s unless search_string.is_a?(String)
@@ -20,8 +25,7 @@ module LikeQuery
20
25
 
21
26
  search_string.split(' ').each do |s|
22
27
 
23
- f_str = format_string_element(s)
24
- #exception_on_unknown_column(f_str, schema)
28
+ f_str = format_string_element(s, column_search)
25
29
  q = []
26
30
 
27
31
  (schema.first.is_a?(Array) ? schema.first : schema).each do |p|
@@ -61,7 +65,11 @@ module LikeQuery
61
65
 
62
66
  # raise error
63
67
  if f_str[:column] && !available_column_keys.include?(f_str[:column])
64
- raise "column «#{f_str[:column]}» is not present within available columns: «#{available_column_keys.join(', ')}»"
68
+ str = I18n.t(
69
+ 'like_query.column_not_available_error',
70
+ default: 'column «%<column>s» is not present within available columns: «%<available_columns>s»'
71
+ )
72
+ raise format(str, column: f_str[:column], available_columns: available_column_keys.join(', '))
65
73
  end
66
74
 
67
75
  __q = q.compact
@@ -108,9 +116,9 @@ module LikeQuery
108
116
  r
109
117
  end
110
118
 
111
- def format_string_element(str)
119
+ def format_string_element(str, column_search)
112
120
 
113
- column = str.match(LikeQuery::Formatter::COLUMN_REGEX_CASE_INSENSITIVE)
121
+ column = (column_search ? str.match(LikeQuery::Formatter::COLUMN_REGEX_CASE_INSENSITIVE) : nil)
114
122
  _str = (column ? str.match(/(?<=:)[\s\S]+/) : str).to_s
115
123
  match_number = _str.match(/^(\d+(?:\.\d+)?)$/)
116
124
  match_range = _str.match(/^(\d+(?:\.\d+)?)(\.\.)(\d+(?:\.\d+)?)$/)
@@ -1,3 +1,3 @@
1
1
  module LikeQuery
2
- VERSION = "1.0.2"
2
+ VERSION = "1.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: like_query
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - christian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-12-05 00:00:00.000000000 Z
11
+ date: 2024-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails