like_query 1.0.2 → 1.1.0

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: 3291e396d226fb8c163ff49db78b8b23080914632a1f324c357ed529334c2fad
4
+ data.tar.gz: 31d01639a45908671623b72472ab6bdf26416aedfe3c047c90d18993d512b927
5
5
  SHA512:
6
- metadata.gz: eaa27b8325b8680cfe13f44717102b6ab50350a426f0c3bd72f2dd72d2dae4f3a6146a000c29cad1ca3d74072ecaaa78b19dd959c415fd9d779cb9a1cbfaa588
7
- data.tar.gz: c69eb3ab35d8428814b272e14f4bef332386fdae76354ff1b3eb7d7f3f9a7d646c1f5e9dd42cb6c0bd33f9de3a2e121e3ae5173bc4b2c85c4c9e97bf0e3fa616
6
+ metadata.gz: d400e70293eedbc5be66beb12a023f802f32c5ebb99c51a81507104ad0e39e8a8459486bbbb9978380c33825b2e0ae6d6aaf2cad20a2d1ea9d1f624db2d51e55
7
+ data.tar.gz: 26cd9841e467129fffff8c99e8b6e010b6204b631569c0ecd21af2db7166c67e8dec93fab3667840af7aa7a9f802e521037dc302fcac3ab37d37ca2b2c576407
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,7 @@
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: Rails.configuration.x.like_query.column_search || true)
5
5
 
6
6
  search_string = '' if !search_string
7
7
  search_string = search_string.to_s unless search_string.is_a?(String)
@@ -20,8 +20,7 @@ module LikeQuery
20
20
 
21
21
  search_string.split(' ').each do |s|
22
22
 
23
- f_str = format_string_element(s)
24
- #exception_on_unknown_column(f_str, schema)
23
+ f_str = format_string_element(s, column_search)
25
24
  q = []
26
25
 
27
26
  (schema.first.is_a?(Array) ? schema.first : schema).each do |p|
@@ -61,7 +60,11 @@ module LikeQuery
61
60
 
62
61
  # raise error
63
62
  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(', ')}»"
63
+ str = I18n.t(
64
+ 'like_query.column_not_available_error',
65
+ default: 'column «%<column>s» is not present within available columns: «%<available_columns>s»'
66
+ )
67
+ raise format(str, column: f_str[:column], available_columns: available_column_keys.join(', '))
65
68
  end
66
69
 
67
70
  __q = q.compact
@@ -108,9 +111,9 @@ module LikeQuery
108
111
  r
109
112
  end
110
113
 
111
- def format_string_element(str)
114
+ def format_string_element(str, column_search)
112
115
 
113
- column = str.match(LikeQuery::Formatter::COLUMN_REGEX_CASE_INSENSITIVE)
116
+ column = (column_search ? str.match(LikeQuery::Formatter::COLUMN_REGEX_CASE_INSENSITIVE) : nil)
114
117
  _str = (column ? str.match(/(?<=:)[\s\S]+/) : str).to_s
115
118
  match_number = _str.match(/^(\d+(?:\.\d+)?)$/)
116
119
  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.0"
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.0
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