like_query 1.0.2 → 1.1.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 +4 -4
- data/README.md +6 -1
- data/lib/like_query/model_extensions.rb +9 -6
- data/lib/like_query/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3291e396d226fb8c163ff49db78b8b23080914632a1f324c357ed529334c2fad
|
4
|
+
data.tar.gz: 31d01639a45908671623b72472ab6bdf26416aedfe3c047c90d18993d512b927
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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,
|
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
|
-
|
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+)?)$/)
|
data/lib/like_query/version.rb
CHANGED
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
|
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-
|
11
|
+
date: 2024-12-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|