search_rails 2.0.5 → 3.0.1
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/.node-version +1 -1
- data/.npm-version +1 -1
- data/.rubocop.yml +23 -2
- data/.ruby-version +1 -1
- data/.tool-versions +2 -3
- data/Gemfile +1 -2
- data/Gemfile.lock +204 -201
- data/VERSION +1 -1
- data/lib/search.rb +78 -75
- data/package-lock.json +4 -4
- data/package.json +3 -3
- data/search_rails.gemspec +3 -3
- metadata +14 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cfc525b4e7ba4fc5f46a463ae4a52ace227109537fcf8c980b68098f13f24d80
|
|
4
|
+
data.tar.gz: b8620e4f3c0f73f7b177e6525a1a7e1f0205662cfc453ad1d3fd50f88e102246
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6b8abfadfe3a557453cfcb50275e788d7191a606767be35dcd7c25e145434228f140d56a5ec309dc23b3cbe93b131f4ae6cd562c004f4ce989edadfd3f6c05f7
|
|
7
|
+
data.tar.gz: 9bf8848acad5afe00b136239d6958675aba1c6b1a281f71392c713dcf5cf36b8999e0d2bbe1c21d7d8bf9f0cfaf7e0dc7995859a0e49904e170da7a588150496
|
data/.node-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
26.3.1
|
data/.npm-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
11.
|
|
1
|
+
11.17.0
|
data/.rubocop.yml
CHANGED
|
@@ -5,15 +5,21 @@ AllCops:
|
|
|
5
5
|
- "**/vendor/**/*"
|
|
6
6
|
- "**/db/schema.rb"
|
|
7
7
|
NewCops: enable
|
|
8
|
-
TargetRubyVersion:
|
|
8
|
+
TargetRubyVersion: 4.0
|
|
9
9
|
Layout/ClosingHeredocIndentation:
|
|
10
10
|
Enabled: false
|
|
11
|
+
Layout/ElseAlignment:
|
|
12
|
+
Enabled: false
|
|
13
|
+
Layout/EndAlignment:
|
|
14
|
+
Enabled: false
|
|
11
15
|
Layout/FirstArgumentIndentation:
|
|
12
16
|
Enabled: false
|
|
13
17
|
Layout/HashAlignment:
|
|
14
18
|
Enabled: false
|
|
15
19
|
Layout/HeredocIndentation:
|
|
16
20
|
Enabled: false
|
|
21
|
+
Layout/IndentationWidth:
|
|
22
|
+
Enabled: false
|
|
17
23
|
Layout/LineEndStringConcatenationIndentation:
|
|
18
24
|
Enabled: false
|
|
19
25
|
Layout/LineLength:
|
|
@@ -22,14 +28,20 @@ Layout/MultilineMethodCallIndentation:
|
|
|
22
28
|
Enabled: false
|
|
23
29
|
Layout/MultilineOperationIndentation:
|
|
24
30
|
Enabled: false
|
|
31
|
+
Layout/SpaceAroundKeyword:
|
|
32
|
+
Enabled: false
|
|
25
33
|
Layout/SpaceInsideHashLiteralBraces:
|
|
26
34
|
Enabled: false
|
|
35
|
+
Lint/ConstantDefinitionInBlock:
|
|
36
|
+
Enabled: false
|
|
27
37
|
Lint/EmptyClass:
|
|
28
38
|
Enabled: false
|
|
29
39
|
Lint/MissingSuper:
|
|
30
40
|
Enabled: false
|
|
31
41
|
Lint/PercentStringArray:
|
|
32
42
|
Enabled: false
|
|
43
|
+
Lint/SafeNavigationChain:
|
|
44
|
+
Enabled: false
|
|
33
45
|
Lint/ShadowingOuterLocalVariable:
|
|
34
46
|
Enabled: false
|
|
35
47
|
Lint/SuppressedException:
|
|
@@ -44,6 +56,8 @@ Metrics/BlockLength:
|
|
|
44
56
|
Enabled: false
|
|
45
57
|
Metrics/ClassLength:
|
|
46
58
|
Enabled: false
|
|
59
|
+
Metrics/CollectionLiteralLength:
|
|
60
|
+
Enabled: false
|
|
47
61
|
Metrics/CyclomaticComplexity:
|
|
48
62
|
Enabled: false
|
|
49
63
|
Metrics/MethodLength:
|
|
@@ -58,6 +72,8 @@ Naming/FileName:
|
|
|
58
72
|
Enabled: false
|
|
59
73
|
Naming/MethodParameterName:
|
|
60
74
|
Enabled: false
|
|
75
|
+
Naming/PredicateMethod:
|
|
76
|
+
Enabled: false
|
|
61
77
|
Naming/VariableNumber:
|
|
62
78
|
Enabled: false
|
|
63
79
|
Performance/Sum:
|
|
@@ -80,6 +96,8 @@ RSpec/NoExpectationExample:
|
|
|
80
96
|
Enabled: false
|
|
81
97
|
RSpec/PendingWithoutReason:
|
|
82
98
|
Enabled: false
|
|
99
|
+
Rails/BulkChangeTable:
|
|
100
|
+
Enabled: false
|
|
83
101
|
Rails/Delegate:
|
|
84
102
|
Enabled: false
|
|
85
103
|
Rails/DynamicFindBy:
|
|
@@ -94,6 +112,8 @@ Rails/Presence:
|
|
|
94
112
|
Enabled: false
|
|
95
113
|
Rails/Present:
|
|
96
114
|
Enabled: false
|
|
115
|
+
Rails/SkipsModelValidations:
|
|
116
|
+
Enabled: false
|
|
97
117
|
Rails/ThreeStateBooleanColumn:
|
|
98
118
|
Enabled: false
|
|
99
119
|
Rails/TimeZone:
|
|
@@ -110,6 +130,8 @@ Style/EmptyMethod:
|
|
|
110
130
|
Enabled: false
|
|
111
131
|
Style/IfUnlessModifier:
|
|
112
132
|
Enabled: false
|
|
133
|
+
Style/Lambda:
|
|
134
|
+
Enabled: false
|
|
113
135
|
Style/MultilineBlockChain:
|
|
114
136
|
Enabled: false
|
|
115
137
|
Style/NestedTernaryOperator:
|
|
@@ -121,7 +143,6 @@ Style/StringLiterals:
|
|
|
121
143
|
Style/StringLiteralsInInterpolation:
|
|
122
144
|
Enabled: false
|
|
123
145
|
plugins:
|
|
124
|
-
- rubocop-factory_bot
|
|
125
146
|
- rubocop-performance
|
|
126
147
|
- rubocop-rails
|
|
127
148
|
- rubocop-rake
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
4.0.5
|
data/.tool-versions
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
ruby
|
|
2
|
-
|
|
3
|
-
nodejs 24.4.1
|
|
1
|
+
ruby 4.0.5
|
|
2
|
+
nodejs 26.3.1
|
data/Gemfile
CHANGED
|
@@ -4,14 +4,13 @@ source "https://rubygems.org"
|
|
|
4
4
|
|
|
5
5
|
gemspec
|
|
6
6
|
|
|
7
|
-
ruby "
|
|
7
|
+
ruby "4.0.5"
|
|
8
8
|
|
|
9
9
|
gem "bundler-audit"
|
|
10
10
|
gem "dorian"
|
|
11
11
|
gem "rake"
|
|
12
12
|
gem "rspec"
|
|
13
13
|
gem "rubocop-capybara"
|
|
14
|
-
gem "rubocop-factory_bot"
|
|
15
14
|
gem "rubocop-performance"
|
|
16
15
|
gem "rubocop-rails"
|
|
17
16
|
gem "rubocop-rake"
|
data/Gemfile.lock
CHANGED
|
@@ -1,38 +1,40 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
search_rails (
|
|
4
|
+
search_rails (3.0.1)
|
|
5
5
|
chronic
|
|
6
|
-
query-ruby
|
|
6
|
+
query-ruby (>= 2.0.1, < 3)
|
|
7
7
|
rails
|
|
8
8
|
zeitwerk
|
|
9
9
|
|
|
10
10
|
GEM
|
|
11
11
|
remote: https://rubygems.org/
|
|
12
12
|
specs:
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
action_text-trix (2.1.19)
|
|
14
|
+
railties
|
|
15
|
+
actioncable (8.1.3.1)
|
|
16
|
+
actionpack (= 8.1.3.1)
|
|
17
|
+
activesupport (= 8.1.3.1)
|
|
16
18
|
nio4r (~> 2.0)
|
|
17
19
|
websocket-driver (>= 0.6.1)
|
|
18
20
|
zeitwerk (~> 2.6)
|
|
19
|
-
actionmailbox (8.
|
|
20
|
-
actionpack (= 8.
|
|
21
|
-
activejob (= 8.
|
|
22
|
-
activerecord (= 8.
|
|
23
|
-
activestorage (= 8.
|
|
24
|
-
activesupport (= 8.
|
|
21
|
+
actionmailbox (8.1.3.1)
|
|
22
|
+
actionpack (= 8.1.3.1)
|
|
23
|
+
activejob (= 8.1.3.1)
|
|
24
|
+
activerecord (= 8.1.3.1)
|
|
25
|
+
activestorage (= 8.1.3.1)
|
|
26
|
+
activesupport (= 8.1.3.1)
|
|
25
27
|
mail (>= 2.8.0)
|
|
26
|
-
actionmailer (8.
|
|
27
|
-
actionpack (= 8.
|
|
28
|
-
actionview (= 8.
|
|
29
|
-
activejob (= 8.
|
|
30
|
-
activesupport (= 8.
|
|
28
|
+
actionmailer (8.1.3.1)
|
|
29
|
+
actionpack (= 8.1.3.1)
|
|
30
|
+
actionview (= 8.1.3.1)
|
|
31
|
+
activejob (= 8.1.3.1)
|
|
32
|
+
activesupport (= 8.1.3.1)
|
|
31
33
|
mail (>= 2.8.0)
|
|
32
34
|
rails-dom-testing (~> 2.2)
|
|
33
|
-
actionpack (8.
|
|
34
|
-
actionview (= 8.
|
|
35
|
-
activesupport (= 8.
|
|
35
|
+
actionpack (8.1.3.1)
|
|
36
|
+
actionview (= 8.1.3.1)
|
|
37
|
+
activesupport (= 8.1.3.1)
|
|
36
38
|
nokogiri (>= 1.8.5)
|
|
37
39
|
rack (>= 2.2.4)
|
|
38
40
|
rack-session (>= 1.0.1)
|
|
@@ -40,300 +42,300 @@ GEM
|
|
|
40
42
|
rails-dom-testing (~> 2.2)
|
|
41
43
|
rails-html-sanitizer (~> 1.6)
|
|
42
44
|
useragent (~> 0.16)
|
|
43
|
-
actiontext (8.
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
actiontext (8.1.3.1)
|
|
46
|
+
action_text-trix (~> 2.1.15)
|
|
47
|
+
actionpack (= 8.1.3.1)
|
|
48
|
+
activerecord (= 8.1.3.1)
|
|
49
|
+
activestorage (= 8.1.3.1)
|
|
50
|
+
activesupport (= 8.1.3.1)
|
|
48
51
|
globalid (>= 0.6.0)
|
|
49
52
|
nokogiri (>= 1.8.5)
|
|
50
|
-
actionview (8.
|
|
51
|
-
activesupport (= 8.
|
|
53
|
+
actionview (8.1.3.1)
|
|
54
|
+
activesupport (= 8.1.3.1)
|
|
52
55
|
builder (~> 3.1)
|
|
53
56
|
erubi (~> 1.11)
|
|
54
57
|
rails-dom-testing (~> 2.2)
|
|
55
58
|
rails-html-sanitizer (~> 1.6)
|
|
56
|
-
activejob (8.
|
|
57
|
-
activesupport (= 8.
|
|
59
|
+
activejob (8.1.3.1)
|
|
60
|
+
activesupport (= 8.1.3.1)
|
|
58
61
|
globalid (>= 0.3.6)
|
|
59
|
-
activemodel (8.
|
|
60
|
-
activesupport (= 8.
|
|
61
|
-
activerecord (8.
|
|
62
|
-
activemodel (= 8.
|
|
63
|
-
activesupport (= 8.
|
|
62
|
+
activemodel (8.1.3.1)
|
|
63
|
+
activesupport (= 8.1.3.1)
|
|
64
|
+
activerecord (8.1.3.1)
|
|
65
|
+
activemodel (= 8.1.3.1)
|
|
66
|
+
activesupport (= 8.1.3.1)
|
|
64
67
|
timeout (>= 0.4.0)
|
|
65
|
-
activestorage (8.
|
|
66
|
-
actionpack (= 8.
|
|
67
|
-
activejob (= 8.
|
|
68
|
-
activerecord (= 8.
|
|
69
|
-
activesupport (= 8.
|
|
68
|
+
activestorage (8.1.3.1)
|
|
69
|
+
actionpack (= 8.1.3.1)
|
|
70
|
+
activejob (= 8.1.3.1)
|
|
71
|
+
activerecord (= 8.1.3.1)
|
|
72
|
+
activesupport (= 8.1.3.1)
|
|
70
73
|
marcel (~> 1.0)
|
|
71
|
-
activesupport (8.
|
|
74
|
+
activesupport (8.1.3.1)
|
|
72
75
|
base64
|
|
73
|
-
benchmark (>= 0.3)
|
|
74
76
|
bigdecimal
|
|
75
77
|
concurrent-ruby (~> 1.0, >= 1.3.1)
|
|
76
78
|
connection_pool (>= 2.2.5)
|
|
77
79
|
drb
|
|
78
80
|
i18n (>= 1.6, < 2)
|
|
81
|
+
json
|
|
79
82
|
logger (>= 1.4.2)
|
|
80
83
|
minitest (>= 5.1)
|
|
81
84
|
securerandom (>= 0.3)
|
|
82
85
|
tzinfo (~> 2.0, >= 2.0.5)
|
|
83
86
|
uri (>= 0.13.1)
|
|
84
|
-
addressable (2.
|
|
85
|
-
public_suffix (>= 2.0.2, <
|
|
87
|
+
addressable (2.9.0)
|
|
88
|
+
public_suffix (>= 2.0.2, < 8.0)
|
|
86
89
|
ast (2.4.3)
|
|
87
|
-
base64 (0.
|
|
88
|
-
|
|
89
|
-
bigdecimal (3.1.9)
|
|
90
|
+
base64 (0.3.0)
|
|
91
|
+
bigdecimal (4.1.2)
|
|
90
92
|
builder (3.3.0)
|
|
91
|
-
bundler-audit (0.9.
|
|
92
|
-
bundler (>= 1.2.0
|
|
93
|
+
bundler-audit (0.9.3)
|
|
94
|
+
bundler (>= 1.2.0)
|
|
93
95
|
thor (~> 1.0)
|
|
94
96
|
chronic (0.10.2)
|
|
95
97
|
cmdparse (3.0.7)
|
|
96
|
-
concurrent-ruby (1.3.
|
|
97
|
-
connection_pool (
|
|
98
|
-
crack (1.0.
|
|
98
|
+
concurrent-ruby (1.3.8)
|
|
99
|
+
connection_pool (3.0.2)
|
|
100
|
+
crack (1.0.1)
|
|
99
101
|
bigdecimal
|
|
100
102
|
rexml
|
|
101
|
-
crass (1.0.
|
|
102
|
-
csv (3.3.
|
|
103
|
-
date (3.
|
|
104
|
-
diff-lcs (1.6.
|
|
105
|
-
dorian (
|
|
106
|
-
csv
|
|
107
|
-
dorian-arguments
|
|
108
|
-
dorian-eval
|
|
109
|
-
dorian-progress
|
|
110
|
-
dorian-to_struct
|
|
111
|
-
|
|
112
|
-
hexapdf
|
|
113
|
-
json
|
|
114
|
-
mini_racer
|
|
115
|
-
ostruct
|
|
116
|
-
parallel
|
|
117
|
-
syntax_tree
|
|
118
|
-
syntax_tree-haml
|
|
119
|
-
syntax_tree-xml
|
|
120
|
-
terminal-table
|
|
121
|
-
w_syntax_tree-erb
|
|
122
|
-
yaml
|
|
123
|
-
dorian-arguments (
|
|
124
|
-
bigdecimal
|
|
125
|
-
dorian-eval (
|
|
126
|
-
yaml
|
|
127
|
-
dorian-progress (
|
|
128
|
-
ruby-progressbar
|
|
129
|
-
dorian-to_struct (
|
|
130
|
-
drb (2.2.
|
|
103
|
+
crass (1.0.7)
|
|
104
|
+
csv (3.3.6)
|
|
105
|
+
date (3.5.1)
|
|
106
|
+
diff-lcs (1.6.2)
|
|
107
|
+
dorian (3.0.2)
|
|
108
|
+
csv (>= 3.3.6, < 4)
|
|
109
|
+
dorian-arguments (>= 2.0.1, < 3)
|
|
110
|
+
dorian-eval (>= 2.0.1, < 3)
|
|
111
|
+
dorian-progress (>= 2.0.1, < 3)
|
|
112
|
+
dorian-to_struct (>= 3.0.1, < 4)
|
|
113
|
+
haml (>= 7.5.1, < 8.0)
|
|
114
|
+
hexapdf (>= 1.10.0, < 2)
|
|
115
|
+
json (>= 2.21.2, < 3)
|
|
116
|
+
mini_racer (>= 0.22.1, < 1)
|
|
117
|
+
ostruct (>= 0.6.3, < 1)
|
|
118
|
+
parallel (>= 2.1.0, < 3.0)
|
|
119
|
+
syntax_tree (>= 6.3.0, < 7)
|
|
120
|
+
syntax_tree-haml (>= 4.0.3, < 5)
|
|
121
|
+
syntax_tree-xml (>= 0.1.0, < 1)
|
|
122
|
+
terminal-table (>= 4.0.0, < 5)
|
|
123
|
+
w_syntax_tree-erb (>= 0.12.0, < 1)
|
|
124
|
+
yaml (>= 0.4.0, < 1)
|
|
125
|
+
dorian-arguments (2.0.1)
|
|
126
|
+
bigdecimal (>= 3.1, < 5)
|
|
127
|
+
dorian-eval (2.0.1)
|
|
128
|
+
yaml (>= 0.3, < 1)
|
|
129
|
+
dorian-progress (2.0.1)
|
|
130
|
+
ruby-progressbar (>= 1.13, < 2)
|
|
131
|
+
dorian-to_struct (3.0.1)
|
|
132
|
+
drb (2.2.3)
|
|
133
|
+
erb (6.0.7)
|
|
131
134
|
erubi (1.13.1)
|
|
132
135
|
geom2d (0.4.1)
|
|
133
|
-
|
|
134
|
-
activesupport (>= 5.0)
|
|
135
|
-
addressable (~> 2.8)
|
|
136
|
-
process_executer (~> 1.3)
|
|
137
|
-
rchardet (~> 1.9)
|
|
138
|
-
globalid (1.2.1)
|
|
136
|
+
globalid (1.4.0)
|
|
139
137
|
activesupport (>= 6.1)
|
|
140
|
-
haml (
|
|
138
|
+
haml (7.5.1)
|
|
139
|
+
prism (>= 1.1.0)
|
|
141
140
|
temple (>= 0.8.2)
|
|
142
141
|
thor
|
|
143
142
|
tilt
|
|
144
|
-
hashdiff (1.1
|
|
145
|
-
hexapdf (1.
|
|
143
|
+
hashdiff (1.2.1)
|
|
144
|
+
hexapdf (1.10.0)
|
|
146
145
|
cmdparse (~> 3.0, >= 3.0.3)
|
|
147
146
|
geom2d (~> 0.4, >= 0.4.1)
|
|
148
147
|
openssl (>= 2.2.1)
|
|
149
148
|
strscan (>= 3.1.2)
|
|
150
|
-
i18n (1.
|
|
149
|
+
i18n (1.15.2)
|
|
151
150
|
concurrent-ruby (~> 1.0)
|
|
152
|
-
io-console (0.
|
|
153
|
-
irb (1.
|
|
151
|
+
io-console (0.9.2)
|
|
152
|
+
irb (1.18.0)
|
|
154
153
|
pp (>= 0.6.0)
|
|
154
|
+
prism (>= 1.3.0)
|
|
155
155
|
rdoc (>= 4.0.0)
|
|
156
156
|
reline (>= 0.4.2)
|
|
157
|
-
json (2.
|
|
158
|
-
language-ruby (
|
|
157
|
+
json (2.21.2)
|
|
158
|
+
language-ruby (2.0.1)
|
|
159
159
|
dorian-arguments
|
|
160
160
|
zeitwerk
|
|
161
|
-
language_server-protocol (3.17.0.
|
|
162
|
-
libv8-node (
|
|
163
|
-
libv8-node (
|
|
164
|
-
libv8-node (23.6.1.0-x86_64-linux)
|
|
161
|
+
language_server-protocol (3.17.0.6)
|
|
162
|
+
libv8-node (24.12.0.1-arm64-darwin)
|
|
163
|
+
libv8-node (24.12.0.1-x86_64-linux)
|
|
165
164
|
lint_roller (1.1.0)
|
|
166
165
|
logger (1.7.0)
|
|
167
|
-
loofah (2.
|
|
166
|
+
loofah (2.25.2)
|
|
168
167
|
crass (~> 1.0.2)
|
|
169
168
|
nokogiri (>= 1.12.0)
|
|
170
|
-
mail (2.
|
|
169
|
+
mail (2.9.1)
|
|
170
|
+
logger
|
|
171
171
|
mini_mime (>= 0.1.1)
|
|
172
172
|
net-imap
|
|
173
173
|
net-pop
|
|
174
174
|
net-smtp
|
|
175
|
-
marcel (1.
|
|
175
|
+
marcel (1.2.1)
|
|
176
176
|
mini_mime (1.1.5)
|
|
177
|
-
mini_racer (0.
|
|
178
|
-
libv8-node (~>
|
|
179
|
-
minitest (
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
177
|
+
mini_racer (0.22.1)
|
|
178
|
+
libv8-node (~> 24.12.0.1)
|
|
179
|
+
minitest (6.0.6)
|
|
180
|
+
drb (~> 2.0)
|
|
181
|
+
prism (~> 1.5)
|
|
182
|
+
mustermann (3.1.1)
|
|
183
|
+
net-imap (0.6.6)
|
|
183
184
|
date
|
|
184
185
|
net-protocol
|
|
185
186
|
net-pop (0.1.2)
|
|
186
187
|
net-protocol
|
|
187
|
-
net-protocol (0.
|
|
188
|
+
net-protocol (0.3.0)
|
|
188
189
|
timeout
|
|
189
190
|
net-smtp (0.5.1)
|
|
190
191
|
net-protocol
|
|
191
|
-
nio4r (2.7.
|
|
192
|
-
nokogiri (1.
|
|
192
|
+
nio4r (2.7.5)
|
|
193
|
+
nokogiri (1.19.4-arm64-darwin)
|
|
193
194
|
racc (~> 1.4)
|
|
194
|
-
nokogiri (1.
|
|
195
|
+
nokogiri (1.19.4-x86_64-linux-gnu)
|
|
195
196
|
racc (~> 1.4)
|
|
196
|
-
openssl (
|
|
197
|
-
ostruct (0.6.
|
|
198
|
-
parallel (1.
|
|
199
|
-
parser (3.3.
|
|
197
|
+
openssl (4.0.2)
|
|
198
|
+
ostruct (0.6.3)
|
|
199
|
+
parallel (2.1.0)
|
|
200
|
+
parser (3.3.12.0)
|
|
200
201
|
ast (~> 2.4.1)
|
|
201
202
|
racc
|
|
202
|
-
pp (0.6.
|
|
203
|
+
pp (0.6.4)
|
|
203
204
|
prettyprint
|
|
204
205
|
prettier_print (1.2.1)
|
|
205
206
|
prettyprint (0.2.0)
|
|
206
|
-
prism (1.
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
date
|
|
210
|
-
stringio
|
|
211
|
-
public_suffix (6.0.1)
|
|
212
|
-
query-ruby (1.1.0)
|
|
207
|
+
prism (1.9.0)
|
|
208
|
+
public_suffix (7.0.5)
|
|
209
|
+
query-ruby (2.0.1)
|
|
213
210
|
activesupport
|
|
214
211
|
bigdecimal
|
|
215
|
-
dorian-arguments
|
|
212
|
+
dorian-arguments (>= 2.0.1, < 3)
|
|
216
213
|
json
|
|
217
|
-
language-ruby
|
|
214
|
+
language-ruby (>= 2.0.1, < 3)
|
|
218
215
|
zeitwerk
|
|
219
216
|
racc (1.8.1)
|
|
220
|
-
rack (3.
|
|
221
|
-
rack-protection (4.
|
|
217
|
+
rack (3.2.7)
|
|
218
|
+
rack-protection (4.2.1)
|
|
222
219
|
base64 (>= 0.1.0)
|
|
223
220
|
logger (>= 1.6.0)
|
|
224
221
|
rack (>= 3.0.0, < 4)
|
|
225
|
-
rack-session (2.1.
|
|
222
|
+
rack-session (2.1.2)
|
|
226
223
|
base64 (>= 0.1.0)
|
|
227
224
|
rack (>= 3.0.0)
|
|
228
225
|
rack-test (2.2.0)
|
|
229
226
|
rack (>= 1.3)
|
|
230
|
-
rackup (2.
|
|
227
|
+
rackup (2.3.1)
|
|
231
228
|
rack (>= 3)
|
|
232
|
-
rails (8.
|
|
233
|
-
actioncable (= 8.
|
|
234
|
-
actionmailbox (= 8.
|
|
235
|
-
actionmailer (= 8.
|
|
236
|
-
actionpack (= 8.
|
|
237
|
-
actiontext (= 8.
|
|
238
|
-
actionview (= 8.
|
|
239
|
-
activejob (= 8.
|
|
240
|
-
activemodel (= 8.
|
|
241
|
-
activerecord (= 8.
|
|
242
|
-
activestorage (= 8.
|
|
243
|
-
activesupport (= 8.
|
|
229
|
+
rails (8.1.3.1)
|
|
230
|
+
actioncable (= 8.1.3.1)
|
|
231
|
+
actionmailbox (= 8.1.3.1)
|
|
232
|
+
actionmailer (= 8.1.3.1)
|
|
233
|
+
actionpack (= 8.1.3.1)
|
|
234
|
+
actiontext (= 8.1.3.1)
|
|
235
|
+
actionview (= 8.1.3.1)
|
|
236
|
+
activejob (= 8.1.3.1)
|
|
237
|
+
activemodel (= 8.1.3.1)
|
|
238
|
+
activerecord (= 8.1.3.1)
|
|
239
|
+
activestorage (= 8.1.3.1)
|
|
240
|
+
activesupport (= 8.1.3.1)
|
|
244
241
|
bundler (>= 1.15.0)
|
|
245
|
-
railties (= 8.
|
|
246
|
-
rails-dom-testing (2.
|
|
242
|
+
railties (= 8.1.3.1)
|
|
243
|
+
rails-dom-testing (2.3.0)
|
|
247
244
|
activesupport (>= 5.0.0)
|
|
248
245
|
minitest
|
|
249
246
|
nokogiri (>= 1.6)
|
|
250
|
-
rails-html-sanitizer (1.
|
|
251
|
-
loofah (~> 2.
|
|
247
|
+
rails-html-sanitizer (1.7.1)
|
|
248
|
+
loofah (~> 2.25, >= 2.25.2)
|
|
252
249
|
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
|
|
253
|
-
railties (8.
|
|
254
|
-
actionpack (= 8.
|
|
255
|
-
activesupport (= 8.
|
|
250
|
+
railties (8.1.3.1)
|
|
251
|
+
actionpack (= 8.1.3.1)
|
|
252
|
+
activesupport (= 8.1.3.1)
|
|
256
253
|
irb (~> 1.13)
|
|
257
254
|
rackup (>= 1.0.0)
|
|
258
255
|
rake (>= 12.2)
|
|
259
256
|
thor (~> 1.0, >= 1.2.2)
|
|
257
|
+
tsort (>= 0.2)
|
|
260
258
|
zeitwerk (~> 2.6)
|
|
261
259
|
rainbow (3.1.1)
|
|
262
|
-
rake (13.2
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
260
|
+
rake (13.4.2)
|
|
261
|
+
rbs (4.2.0)
|
|
262
|
+
logger
|
|
263
|
+
prism (>= 1.6.0)
|
|
264
|
+
tsort
|
|
265
|
+
rdoc (8.0.0)
|
|
266
|
+
erb
|
|
267
|
+
prism (>= 1.6.0)
|
|
268
|
+
rbs (>= 4.0.0)
|
|
269
|
+
tsort
|
|
270
|
+
regexp_parser (2.12.0)
|
|
271
|
+
reline (0.7.0)
|
|
268
272
|
io-console (~> 0.5)
|
|
269
|
-
rexml (3.4.
|
|
270
|
-
rspec (3.13.
|
|
273
|
+
rexml (3.4.4)
|
|
274
|
+
rspec (3.13.2)
|
|
271
275
|
rspec-core (~> 3.13.0)
|
|
272
276
|
rspec-expectations (~> 3.13.0)
|
|
273
277
|
rspec-mocks (~> 3.13.0)
|
|
274
|
-
rspec-core (3.13.
|
|
278
|
+
rspec-core (3.13.6)
|
|
275
279
|
rspec-support (~> 3.13.0)
|
|
276
|
-
rspec-expectations (3.13.
|
|
280
|
+
rspec-expectations (3.13.5)
|
|
277
281
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
278
282
|
rspec-support (~> 3.13.0)
|
|
279
|
-
rspec-mocks (3.13.
|
|
283
|
+
rspec-mocks (3.13.8)
|
|
280
284
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
281
285
|
rspec-support (~> 3.13.0)
|
|
282
|
-
rspec-support (3.13.
|
|
283
|
-
rubocop (1.
|
|
284
|
-
json (
|
|
286
|
+
rspec-support (3.13.7)
|
|
287
|
+
rubocop (1.90.0)
|
|
288
|
+
json (>= 2.3)
|
|
285
289
|
language_server-protocol (~> 3.17.0.2)
|
|
286
290
|
lint_roller (~> 1.1.0)
|
|
287
|
-
parallel (
|
|
291
|
+
parallel (>= 1.10)
|
|
288
292
|
parser (>= 3.3.0.2)
|
|
289
293
|
rainbow (>= 2.2.2, < 4.0)
|
|
290
294
|
regexp_parser (>= 2.9.3, < 3.0)
|
|
291
|
-
rubocop-ast (>= 1.
|
|
295
|
+
rubocop-ast (>= 1.49.0, < 2.0)
|
|
292
296
|
ruby-progressbar (~> 1.7)
|
|
293
297
|
unicode-display_width (>= 2.4.0, < 4.0)
|
|
294
|
-
rubocop-ast (1.
|
|
298
|
+
rubocop-ast (1.50.0)
|
|
295
299
|
parser (>= 3.3.7.2)
|
|
296
|
-
prism (~> 1.
|
|
297
|
-
rubocop-capybara (
|
|
300
|
+
prism (~> 1.7)
|
|
301
|
+
rubocop-capybara (3.0.0)
|
|
298
302
|
lint_roller (~> 1.1)
|
|
299
|
-
rubocop (~> 1.
|
|
300
|
-
rubocop-
|
|
301
|
-
lint_roller (~> 1.1)
|
|
302
|
-
rubocop (~> 1.72, >= 1.72.1)
|
|
303
|
-
rubocop-performance (1.25.0)
|
|
303
|
+
rubocop (~> 1.81)
|
|
304
|
+
rubocop-performance (1.27.0)
|
|
304
305
|
lint_roller (~> 1.1)
|
|
305
|
-
rubocop (>= 1.
|
|
306
|
-
rubocop-ast (>= 1.
|
|
307
|
-
rubocop-rails (2.
|
|
306
|
+
rubocop (>= 1.89.0, < 2.0)
|
|
307
|
+
rubocop-ast (>= 1.47.1, < 2.0)
|
|
308
|
+
rubocop-rails (2.37.0)
|
|
308
309
|
activesupport (>= 4.2.0)
|
|
309
310
|
lint_roller (~> 1.1)
|
|
310
311
|
rack (>= 1.1)
|
|
311
|
-
rubocop (>= 1.
|
|
312
|
-
rubocop-ast (>= 1.
|
|
312
|
+
rubocop (>= 1.89.0, < 2.0)
|
|
313
|
+
rubocop-ast (>= 1.44.0, < 2.0)
|
|
313
314
|
rubocop-rake (0.7.1)
|
|
314
315
|
lint_roller (~> 1.1)
|
|
315
316
|
rubocop (>= 1.72.1)
|
|
316
|
-
rubocop-rspec (3.
|
|
317
|
+
rubocop-rspec (3.10.2)
|
|
317
318
|
lint_roller (~> 1.1)
|
|
318
|
-
|
|
319
|
-
|
|
319
|
+
regexp_parser (>= 2.0)
|
|
320
|
+
rubocop (~> 1.86, >= 1.86.2)
|
|
321
|
+
rubocop-rspec_rails (2.32.0)
|
|
320
322
|
lint_roller (~> 1.1)
|
|
321
323
|
rubocop (~> 1.72, >= 1.72.1)
|
|
322
324
|
rubocop-rspec (~> 3.5)
|
|
323
|
-
ruby-prof (
|
|
325
|
+
ruby-prof (2.0.5)
|
|
326
|
+
base64
|
|
327
|
+
ostruct
|
|
324
328
|
ruby-progressbar (1.13.0)
|
|
325
|
-
ruby2_keywords (0.0.5)
|
|
326
329
|
securerandom (0.4.1)
|
|
327
|
-
sinatra (4.
|
|
330
|
+
sinatra (4.2.1)
|
|
328
331
|
logger (>= 1.6.0)
|
|
329
332
|
mustermann (~> 3.0)
|
|
330
333
|
rack (>= 3.0.0, < 4)
|
|
331
|
-
rack-protection (= 4.
|
|
334
|
+
rack-protection (= 4.2.1)
|
|
332
335
|
rack-session (>= 2.0.0, < 3)
|
|
333
336
|
tilt (~> 2.0)
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
syntax_tree (6.2.0)
|
|
337
|
+
strscan (3.1.8)
|
|
338
|
+
syntax_tree (6.3.0)
|
|
337
339
|
prettier_print (>= 1.2.0)
|
|
338
340
|
syntax_tree-haml (4.0.3)
|
|
339
341
|
haml (>= 5.2)
|
|
@@ -342,36 +344,38 @@ GEM
|
|
|
342
344
|
syntax_tree-xml (0.1.0)
|
|
343
345
|
prettier_print
|
|
344
346
|
syntax_tree (>= 2.0.1)
|
|
345
|
-
temple (0.10.
|
|
347
|
+
temple (0.10.7)
|
|
346
348
|
terminal-table (4.0.0)
|
|
347
349
|
unicode-display_width (>= 1.1.1, < 4)
|
|
348
|
-
thor (1.
|
|
349
|
-
tilt (2.
|
|
350
|
-
timeout (0.
|
|
350
|
+
thor (1.5.0)
|
|
351
|
+
tilt (2.9.0)
|
|
352
|
+
timeout (0.6.1)
|
|
353
|
+
tsort (0.2.0)
|
|
351
354
|
tzinfo (2.0.6)
|
|
352
355
|
concurrent-ruby (~> 1.0)
|
|
353
|
-
unicode-display_width (3.
|
|
354
|
-
unicode-emoji (~> 4.
|
|
355
|
-
unicode-emoji (4.0
|
|
356
|
-
uri (1.
|
|
356
|
+
unicode-display_width (3.2.0)
|
|
357
|
+
unicode-emoji (~> 4.1)
|
|
358
|
+
unicode-emoji (4.2.0)
|
|
359
|
+
uri (1.1.1)
|
|
357
360
|
useragent (0.16.11)
|
|
358
361
|
w_syntax_tree-erb (0.12.0)
|
|
359
362
|
prettier_print (~> 1.2, >= 1.2.0)
|
|
360
363
|
syntax_tree (~> 6.1, >= 6.1.1)
|
|
361
|
-
webmock (3.
|
|
364
|
+
webmock (3.26.4)
|
|
362
365
|
addressable (>= 2.8.0)
|
|
363
366
|
crack (>= 0.3.2)
|
|
364
367
|
hashdiff (>= 0.4.0, < 2.0.0)
|
|
365
|
-
websocket-driver (0.
|
|
368
|
+
websocket-driver (0.8.2)
|
|
366
369
|
base64
|
|
367
370
|
websocket-extensions (>= 0.1.0)
|
|
368
371
|
websocket-extensions (0.1.5)
|
|
369
372
|
yaml (0.4.0)
|
|
370
|
-
zeitwerk (2.
|
|
373
|
+
zeitwerk (2.8.3)
|
|
371
374
|
|
|
372
375
|
PLATFORMS
|
|
373
376
|
arm64-darwin-23
|
|
374
377
|
arm64-darwin-24
|
|
378
|
+
arm64-darwin-25
|
|
375
379
|
x86_64-linux
|
|
376
380
|
|
|
377
381
|
DEPENDENCIES
|
|
@@ -380,7 +384,6 @@ DEPENDENCIES
|
|
|
380
384
|
rake
|
|
381
385
|
rspec
|
|
382
386
|
rubocop-capybara
|
|
383
|
-
rubocop-factory_bot
|
|
384
387
|
rubocop-performance
|
|
385
388
|
rubocop-rails
|
|
386
389
|
rubocop-rake
|
|
@@ -392,7 +395,7 @@ DEPENDENCIES
|
|
|
392
395
|
webmock
|
|
393
396
|
|
|
394
397
|
RUBY VERSION
|
|
395
|
-
|
|
398
|
+
ruby 4.0.5
|
|
396
399
|
|
|
397
400
|
BUNDLED WITH
|
|
398
|
-
|
|
401
|
+
4.0.15
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
3.0.1
|
data/lib/search.rb
CHANGED
|
@@ -94,8 +94,8 @@ module Search
|
|
|
94
94
|
# fields:
|
|
95
95
|
# [:id, :name, :input]
|
|
96
96
|
scope :search,
|
|
97
|
-
|
|
98
|
-
raise ArgumentError unless
|
|
97
|
+
lambda { |q: "", fields: search_fields&.keys|
|
|
98
|
+
raise ArgumentError unless search_fields.is_an?(Hash)
|
|
99
99
|
raise ArgumentError unless fields.is_an?(Array)
|
|
100
100
|
|
|
101
101
|
fields = fields.map(&:to_s)
|
|
@@ -113,22 +113,24 @@ module Search
|
|
|
113
113
|
fields: fields
|
|
114
114
|
)
|
|
115
115
|
)
|
|
116
|
-
|
|
116
|
+
}
|
|
117
117
|
|
|
118
118
|
scope :_search_joins,
|
|
119
|
-
|
|
119
|
+
lambda { |scope:, fields:|
|
|
120
120
|
fields = fields.map(&:to_s)
|
|
121
121
|
|
|
122
122
|
relations =
|
|
123
|
-
fields.
|
|
123
|
+
fields.filter_map do |field|
|
|
124
|
+
search_fields.fetch(field.to_sym)[:relation]
|
|
125
|
+
end
|
|
124
126
|
|
|
125
127
|
relations.reduce(scope) do |scope_with_relations, relation|
|
|
126
128
|
relation.call(scope_with_relations)
|
|
127
129
|
end
|
|
128
|
-
|
|
130
|
+
}
|
|
129
131
|
|
|
130
132
|
scope :_search_parsed,
|
|
131
|
-
|
|
133
|
+
lambda { |parsed:, scope:, fields:|
|
|
132
134
|
if parsed.is_a?(String)
|
|
133
135
|
scope._search_fields(q: parsed, fields: fields)
|
|
134
136
|
elsif parsed.is_a?(Hash)
|
|
@@ -186,7 +188,11 @@ module Search
|
|
|
186
188
|
if key.blank?
|
|
187
189
|
scope.none
|
|
188
190
|
else
|
|
189
|
-
scope._search_field(
|
|
191
|
+
scope._search_field(
|
|
192
|
+
key: key,
|
|
193
|
+
operator: operator,
|
|
194
|
+
value: value
|
|
195
|
+
)
|
|
190
196
|
end
|
|
191
197
|
else
|
|
192
198
|
raise ArgumentError
|
|
@@ -194,14 +200,14 @@ module Search
|
|
|
194
200
|
else
|
|
195
201
|
raise ArgumentError
|
|
196
202
|
end
|
|
197
|
-
|
|
203
|
+
}
|
|
198
204
|
|
|
199
205
|
# q:
|
|
200
206
|
# "dorian"
|
|
201
207
|
# "1"
|
|
202
208
|
# fields: [:id, :given_name, :family_name]
|
|
203
209
|
scope :_search_fields,
|
|
204
|
-
|
|
210
|
+
lambda { |q: "", fields: search_fields&.keys|
|
|
205
211
|
raise ArgumentError unless search_fields.is_an?(Hash)
|
|
206
212
|
raise ArgumentError unless fields.is_an?(Array)
|
|
207
213
|
|
|
@@ -211,21 +217,20 @@ module Search
|
|
|
211
217
|
where(
|
|
212
218
|
fields
|
|
213
219
|
.map do |field|
|
|
214
|
-
field =
|
|
220
|
+
field = search_fields.fetch(field.to_sym)
|
|
215
221
|
node = field[:node].call
|
|
216
222
|
casted_field = _search_cast(node: node, type: :text)
|
|
217
223
|
casted_field.matches("%#{q}%", nil, false)
|
|
218
224
|
end
|
|
219
225
|
.reduce(&:or)
|
|
220
226
|
)
|
|
221
|
-
|
|
222
|
-
end
|
|
227
|
+
}
|
|
223
228
|
|
|
224
229
|
# key: input, name, id, created_at, updated_at, verified, admin, ...
|
|
225
230
|
# operator: :, =, >, ~, <, >=, ...
|
|
226
231
|
# value: "pomodoro", 123, true, false
|
|
227
232
|
scope :_search_field,
|
|
228
|
-
|
|
233
|
+
lambda { |key:, value:, operator: ":", fields: search_fields&.keys|
|
|
229
234
|
raise ArgumentError unless search_fields.is_an?(Hash)
|
|
230
235
|
raise ArgumentError unless fields.is_an?(Array)
|
|
231
236
|
|
|
@@ -235,7 +240,7 @@ module Search
|
|
|
235
240
|
raise ArgumentError if key.blank?
|
|
236
241
|
raise ArgumentError if operator.blank?
|
|
237
242
|
|
|
238
|
-
field =
|
|
243
|
+
field = search_fields.fetch(key.to_sym)
|
|
239
244
|
|
|
240
245
|
case operator
|
|
241
246
|
when ":"
|
|
@@ -256,9 +261,7 @@ module Search
|
|
|
256
261
|
_search_matches(field: field, value: value)
|
|
257
262
|
when "="
|
|
258
263
|
_search_equal(field: field, value: value)
|
|
259
|
-
when "!:"
|
|
260
|
-
where.not(id: _search_colon(field: field, value: value))
|
|
261
|
-
when "!!"
|
|
264
|
+
when "!:", "!!"
|
|
262
265
|
where.not(id: _search_colon(field: field, value: value))
|
|
263
266
|
when "!^"
|
|
264
267
|
where.not(id: _search_starts(field: field, value: value))
|
|
@@ -279,11 +282,11 @@ module Search
|
|
|
279
282
|
else
|
|
280
283
|
raise ArgumentError
|
|
281
284
|
end
|
|
282
|
-
|
|
285
|
+
}
|
|
283
286
|
|
|
284
287
|
# id:1, name:dorian, verified:true, created_at:today
|
|
285
288
|
scope :_search_colon,
|
|
286
|
-
|
|
289
|
+
lambda { |field:, value:|
|
|
287
290
|
node = field[:node].call
|
|
288
291
|
|
|
289
292
|
case field[:type]
|
|
@@ -298,10 +301,10 @@ module Search
|
|
|
298
301
|
else
|
|
299
302
|
raise ArgumentError
|
|
300
303
|
end
|
|
301
|
-
|
|
304
|
+
}
|
|
302
305
|
|
|
303
306
|
scope :_search_matches,
|
|
304
|
-
|
|
307
|
+
lambda { |field:, value:|
|
|
305
308
|
node = field[:node].call
|
|
306
309
|
|
|
307
310
|
case field[:type]
|
|
@@ -316,10 +319,10 @@ module Search
|
|
|
316
319
|
else
|
|
317
320
|
raise ArgumentError
|
|
318
321
|
end
|
|
319
|
-
|
|
322
|
+
}
|
|
320
323
|
|
|
321
324
|
scope :_search_ends,
|
|
322
|
-
|
|
325
|
+
lambda { |field:, value:|
|
|
323
326
|
node = field[:node].call
|
|
324
327
|
|
|
325
328
|
case field[:type]
|
|
@@ -334,10 +337,10 @@ module Search
|
|
|
334
337
|
else
|
|
335
338
|
raise ArgumentError
|
|
336
339
|
end
|
|
337
|
-
|
|
340
|
+
}
|
|
338
341
|
|
|
339
342
|
scope :_search_starts,
|
|
340
|
-
|
|
343
|
+
lambda { |field:, value:|
|
|
341
344
|
node = field[:node].call
|
|
342
345
|
|
|
343
346
|
case field[:type]
|
|
@@ -352,10 +355,10 @@ module Search
|
|
|
352
355
|
else
|
|
353
356
|
raise ArgumentError
|
|
354
357
|
end
|
|
355
|
-
|
|
358
|
+
}
|
|
356
359
|
|
|
357
360
|
scope :_search_equal,
|
|
358
|
-
|
|
361
|
+
lambda { |field:, value:|
|
|
359
362
|
node = field[:node].call
|
|
360
363
|
|
|
361
364
|
case field[:type]
|
|
@@ -370,10 +373,10 @@ module Search
|
|
|
370
373
|
else
|
|
371
374
|
raise ArgumentError
|
|
372
375
|
end
|
|
373
|
-
|
|
376
|
+
}
|
|
374
377
|
|
|
375
378
|
scope :_search_lesser,
|
|
376
|
-
|
|
379
|
+
lambda { |field:, value:|
|
|
377
380
|
node = field[:node].call
|
|
378
381
|
|
|
379
382
|
case field[:type]
|
|
@@ -388,10 +391,10 @@ module Search
|
|
|
388
391
|
else
|
|
389
392
|
raise ArgumentError
|
|
390
393
|
end
|
|
391
|
-
|
|
394
|
+
}
|
|
392
395
|
|
|
393
396
|
scope :_search_lesser_or_equal,
|
|
394
|
-
|
|
397
|
+
lambda { |field:, value:|
|
|
395
398
|
node = field[:node].call
|
|
396
399
|
|
|
397
400
|
case field[:type]
|
|
@@ -406,10 +409,10 @@ module Search
|
|
|
406
409
|
else
|
|
407
410
|
raise ArgumentError
|
|
408
411
|
end
|
|
409
|
-
|
|
412
|
+
}
|
|
410
413
|
|
|
411
414
|
scope :_search_greater,
|
|
412
|
-
|
|
415
|
+
lambda { |field:, value:|
|
|
413
416
|
node = field[:node].call
|
|
414
417
|
|
|
415
418
|
case field[:type]
|
|
@@ -424,10 +427,10 @@ module Search
|
|
|
424
427
|
else
|
|
425
428
|
raise ArgumentError
|
|
426
429
|
end
|
|
427
|
-
|
|
430
|
+
}
|
|
428
431
|
|
|
429
432
|
scope :_search_greater_or_equal,
|
|
430
|
-
|
|
433
|
+
lambda { |field:, value:|
|
|
431
434
|
node = field[:node].call
|
|
432
435
|
|
|
433
436
|
case field[:type]
|
|
@@ -442,10 +445,10 @@ module Search
|
|
|
442
445
|
else
|
|
443
446
|
raise ArgumentError
|
|
444
447
|
end
|
|
445
|
-
|
|
448
|
+
}
|
|
446
449
|
|
|
447
450
|
scope :_search_integer_eq,
|
|
448
|
-
|
|
451
|
+
lambda { |node:, value:|
|
|
449
452
|
node = _search_cast(node: node, type: :bigint)
|
|
450
453
|
value = _search_cast_integer(value)
|
|
451
454
|
|
|
@@ -458,10 +461,10 @@ module Search
|
|
|
458
461
|
else
|
|
459
462
|
where(node.eq(value))
|
|
460
463
|
end
|
|
461
|
-
|
|
464
|
+
}
|
|
462
465
|
|
|
463
466
|
scope :_search_datetime_eq,
|
|
464
|
-
|
|
467
|
+
lambda { |node:, value:|
|
|
465
468
|
node = _search_cast(node: node, type: :timestamp)
|
|
466
469
|
value = _search_cast_datetime(value)
|
|
467
470
|
|
|
@@ -474,10 +477,10 @@ module Search
|
|
|
474
477
|
else
|
|
475
478
|
where(node.eq(value))
|
|
476
479
|
end
|
|
477
|
-
|
|
480
|
+
}
|
|
478
481
|
|
|
479
482
|
scope :_search_string_eq,
|
|
480
|
-
|
|
483
|
+
lambda { |node:, value:|
|
|
481
484
|
node = _search_cast(node: node, type: :text)
|
|
482
485
|
value = _search_cast_string(value)
|
|
483
486
|
|
|
@@ -490,10 +493,10 @@ module Search
|
|
|
490
493
|
else
|
|
491
494
|
where(node.eq(value))
|
|
492
495
|
end
|
|
493
|
-
|
|
496
|
+
}
|
|
494
497
|
|
|
495
498
|
scope :_search_boolean_eq,
|
|
496
|
-
|
|
499
|
+
lambda { |node:, value:|
|
|
497
500
|
node = _search_cast(node: node, type: :boolean)
|
|
498
501
|
value = _search_cast_boolean(value)
|
|
499
502
|
|
|
@@ -506,118 +509,118 @@ module Search
|
|
|
506
509
|
else
|
|
507
510
|
where(node.eq(value))
|
|
508
511
|
end
|
|
509
|
-
|
|
512
|
+
}
|
|
510
513
|
|
|
511
514
|
scope :_search_integer_lt,
|
|
512
|
-
|
|
515
|
+
lambda { |node:, value:|
|
|
513
516
|
node = _search_cast(node: node, type: :bigint)
|
|
514
517
|
value = _search_cast_integer(value)
|
|
515
518
|
value = value.first if value.is_a?(Range)
|
|
516
519
|
|
|
517
520
|
where(node.lt(value))
|
|
518
|
-
|
|
521
|
+
}
|
|
519
522
|
|
|
520
523
|
scope :_search_datetime_lt,
|
|
521
|
-
|
|
524
|
+
lambda { |node:, value:|
|
|
522
525
|
node = _search_cast(node: node, type: :timestamp)
|
|
523
526
|
value = _search_cast_datetime(value)
|
|
524
527
|
value = value.first if value.is_a?(Range)
|
|
525
528
|
|
|
526
529
|
where(node.lt(value))
|
|
527
|
-
|
|
530
|
+
}
|
|
528
531
|
|
|
529
532
|
scope :_search_string_lt,
|
|
530
|
-
|
|
533
|
+
lambda { |node:, value:|
|
|
531
534
|
node = _search_cast(node: node, type: :text)
|
|
532
535
|
value = _search_cast_string(value)
|
|
533
536
|
value = value.first if value.is_a?(Range)
|
|
534
537
|
|
|
535
538
|
where(node.lt(value))
|
|
536
|
-
|
|
539
|
+
}
|
|
537
540
|
|
|
538
541
|
scope :_search_integer_lteq,
|
|
539
|
-
|
|
542
|
+
lambda { |node:, value:|
|
|
540
543
|
node = _search_cast(node: node, type: :bigint)
|
|
541
544
|
value = _search_cast_integer(value)
|
|
542
545
|
value = value.first if value.is_a?(Range)
|
|
543
546
|
|
|
544
547
|
where(node.lteq(value))
|
|
545
|
-
|
|
548
|
+
}
|
|
546
549
|
|
|
547
550
|
scope :_search_datetime_lteq,
|
|
548
|
-
|
|
551
|
+
lambda { |node:, value:|
|
|
549
552
|
node = _search_cast(node: node, type: :timestamp)
|
|
550
553
|
value = _search_cast_datetime(value)
|
|
551
554
|
value = value.first if value.is_a?(Range)
|
|
552
555
|
|
|
553
556
|
where(node.lteq(value))
|
|
554
|
-
|
|
557
|
+
}
|
|
555
558
|
|
|
556
559
|
scope :_search_string_lteq,
|
|
557
|
-
|
|
560
|
+
lambda { |node:, value:|
|
|
558
561
|
node = _search_cast(node: node, type: :text)
|
|
559
562
|
value = _search_cast_string(value)
|
|
560
563
|
value = value.first if value.is_a?(Range)
|
|
561
564
|
|
|
562
565
|
where(node.lteq(value))
|
|
563
|
-
|
|
566
|
+
}
|
|
564
567
|
|
|
565
568
|
scope :_search_integer_gt,
|
|
566
|
-
|
|
569
|
+
lambda { |node:, value:|
|
|
567
570
|
node = _search_cast(node: node, type: :bigint)
|
|
568
571
|
value = _search_cast_integer(value)
|
|
569
572
|
value = value.last if value.is_a?(Range)
|
|
570
573
|
|
|
571
574
|
where(node.gt(value))
|
|
572
|
-
|
|
575
|
+
}
|
|
573
576
|
|
|
574
577
|
scope :_search_datetime_gt,
|
|
575
|
-
|
|
578
|
+
lambda { |node:, value:|
|
|
576
579
|
node = _search_cast(node: node, type: :timestamp)
|
|
577
580
|
value = _search_cast_datetime(value)
|
|
578
581
|
value = value.last if value.is_a?(Range)
|
|
579
582
|
|
|
580
583
|
where(node.gt(value))
|
|
581
|
-
|
|
584
|
+
}
|
|
582
585
|
|
|
583
586
|
scope :_search_string_gt,
|
|
584
|
-
|
|
587
|
+
lambda { |node:, value:|
|
|
585
588
|
node = _search_cast(node: node, type: :text)
|
|
586
589
|
value = _search_cast_string(value)
|
|
587
590
|
value = value.last if value.is_a?(Range)
|
|
588
591
|
|
|
589
592
|
where(node.gt(value))
|
|
590
|
-
|
|
593
|
+
}
|
|
591
594
|
|
|
592
595
|
scope :_search_integer_gteq,
|
|
593
|
-
|
|
596
|
+
lambda { |node:, value:|
|
|
594
597
|
node = _search_cast(node: node, type: :bigint)
|
|
595
598
|
value = _search_cast_integer(value)
|
|
596
599
|
value = value.last if value.is_a?(Range)
|
|
597
600
|
|
|
598
601
|
where(node.gteq(value))
|
|
599
|
-
|
|
602
|
+
}
|
|
600
603
|
|
|
601
604
|
scope :_search_datetime_gteq,
|
|
602
|
-
|
|
605
|
+
lambda { |node:, value:|
|
|
603
606
|
node = _search_cast(node: node, type: :timestamp)
|
|
604
607
|
value = _search_cast_datetime(value)
|
|
605
608
|
value = value.last if value.is_a?(Range)
|
|
606
609
|
|
|
607
610
|
where(node.gteq(value))
|
|
608
|
-
|
|
611
|
+
}
|
|
609
612
|
|
|
610
613
|
scope :_search_string_gteq,
|
|
611
|
-
|
|
614
|
+
lambda { |node:, value:|
|
|
612
615
|
node = _search_cast(node: node, type: :text)
|
|
613
616
|
value = _search_cast_string(value)
|
|
614
617
|
value = value.last if value.is_a?(Range)
|
|
615
618
|
|
|
616
619
|
where(node.gteq(value))
|
|
617
|
-
|
|
620
|
+
}
|
|
618
621
|
|
|
619
622
|
scope :_search_string_matches,
|
|
620
|
-
|
|
623
|
+
lambda { |node:, value:|
|
|
621
624
|
node = _search_cast(node: node, type: :text)
|
|
622
625
|
value = _search_cast_string(value)
|
|
623
626
|
|
|
@@ -630,10 +633,10 @@ module Search
|
|
|
630
633
|
else
|
|
631
634
|
where(node.matches("%#{value}%", nil, false))
|
|
632
635
|
end
|
|
633
|
-
|
|
636
|
+
}
|
|
634
637
|
|
|
635
638
|
scope :_search_string_ends,
|
|
636
|
-
|
|
639
|
+
lambda { |node:, value:|
|
|
637
640
|
node = _search_cast(node: node, type: :text)
|
|
638
641
|
value = _search_cast_string(value)
|
|
639
642
|
|
|
@@ -646,10 +649,10 @@ module Search
|
|
|
646
649
|
else
|
|
647
650
|
where(node.matches("%#{value}", nil, false))
|
|
648
651
|
end
|
|
649
|
-
|
|
652
|
+
}
|
|
650
653
|
|
|
651
654
|
scope :_search_string_starts,
|
|
652
|
-
|
|
655
|
+
lambda { |node:, value:|
|
|
653
656
|
node = _search_cast(node: node, type: :text)
|
|
654
657
|
value = _search_cast_string(value)
|
|
655
658
|
|
|
@@ -662,6 +665,6 @@ module Search
|
|
|
662
665
|
else
|
|
663
666
|
where(node.matches("#{value}%", nil, false))
|
|
664
667
|
end
|
|
665
|
-
|
|
668
|
+
}
|
|
666
669
|
end
|
|
667
670
|
end
|
data/package-lock.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "
|
|
2
|
+
"name": "search_rails",
|
|
3
3
|
"lockfileVersion": 3,
|
|
4
4
|
"requires": true,
|
|
5
5
|
"packages": {
|
|
6
6
|
"": {
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"engines": {
|
|
9
|
-
"node": "
|
|
10
|
-
"npm": "11.
|
|
9
|
+
"node": "26.3.1",
|
|
10
|
+
"npm": "11.17.0"
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
}
|
|
14
|
+
}
|
data/package.json
CHANGED
data/search_rails.gemspec
CHANGED
|
@@ -12,12 +12,12 @@ Gem::Specification.new do |s|
|
|
|
12
12
|
s.homepage = "https://github.com/dorianmariecom/search_rails"
|
|
13
13
|
s.license = "MIT"
|
|
14
14
|
|
|
15
|
+
s.add_dependency "chronic"
|
|
16
|
+
s.add_dependency "query-ruby", ">= 2.0.1", "< 3"
|
|
15
17
|
s.add_dependency "rails"
|
|
16
|
-
s.add_dependency "query-ruby"
|
|
17
18
|
s.add_dependency "zeitwerk"
|
|
18
|
-
s.add_dependency "chronic"
|
|
19
19
|
|
|
20
20
|
s.metadata["rubygems_mfa_required"] = "true"
|
|
21
21
|
|
|
22
|
-
s.required_ruby_version = ">=
|
|
22
|
+
s.required_ruby_version = ">= 4.0"
|
|
23
23
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: search_rails
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.0.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Dorian Marié
|
|
@@ -10,7 +10,7 @@ cert_chain: []
|
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
|
-
name:
|
|
13
|
+
name: chronic
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
|
15
15
|
requirements:
|
|
16
16
|
- - ">="
|
|
@@ -29,16 +29,22 @@ dependencies:
|
|
|
29
29
|
requirements:
|
|
30
30
|
- - ">="
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version:
|
|
32
|
+
version: 2.0.1
|
|
33
|
+
- - "<"
|
|
34
|
+
- !ruby/object:Gem::Version
|
|
35
|
+
version: '3'
|
|
33
36
|
type: :runtime
|
|
34
37
|
prerelease: false
|
|
35
38
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
39
|
requirements:
|
|
37
40
|
- - ">="
|
|
38
41
|
- !ruby/object:Gem::Version
|
|
39
|
-
version:
|
|
42
|
+
version: 2.0.1
|
|
43
|
+
- - "<"
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: '3'
|
|
40
46
|
- !ruby/object:Gem::Dependency
|
|
41
|
-
name:
|
|
47
|
+
name: rails
|
|
42
48
|
requirement: !ruby/object:Gem::Requirement
|
|
43
49
|
requirements:
|
|
44
50
|
- - ">="
|
|
@@ -52,7 +58,7 @@ dependencies:
|
|
|
52
58
|
- !ruby/object:Gem::Version
|
|
53
59
|
version: '0'
|
|
54
60
|
- !ruby/object:Gem::Dependency
|
|
55
|
-
name:
|
|
61
|
+
name: zeitwerk
|
|
56
62
|
requirement: !ruby/object:Gem::Requirement
|
|
57
63
|
requirements:
|
|
58
64
|
- - ">="
|
|
@@ -111,14 +117,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
111
117
|
requirements:
|
|
112
118
|
- - ">="
|
|
113
119
|
- !ruby/object:Gem::Version
|
|
114
|
-
version: '
|
|
120
|
+
version: '4.0'
|
|
115
121
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
122
|
requirements:
|
|
117
123
|
- - ">="
|
|
118
124
|
- !ruby/object:Gem::Version
|
|
119
125
|
version: '0'
|
|
120
126
|
requirements: []
|
|
121
|
-
rubygems_version:
|
|
127
|
+
rubygems_version: 4.0.17
|
|
122
128
|
specification_version: 4
|
|
123
129
|
summary: a powerful search for rails
|
|
124
130
|
test_files: []
|