inquery 1.0.10 → 1.0.11
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/CHANGELOG.md +9 -1
- data/LICENSE +1 -1
- data/README.md +19 -3
- data/VERSION +1 -1
- data/doc/Inquery/Exceptions/Base.html +1 -1
- data/doc/Inquery/Exceptions/InvalidRelation.html +1 -1
- data/doc/Inquery/Exceptions/UnknownCallSignature.html +1 -1
- data/doc/Inquery/Exceptions.html +1 -1
- data/doc/Inquery/Mixins/RawSqlUtils.html +1 -1
- data/doc/Inquery/Mixins/RelationValidation/ClassMethods.html +1 -1
- data/doc/Inquery/Mixins/RelationValidation.html +1 -1
- data/doc/Inquery/Mixins/SchemaValidation/ClassMethods.html +17 -3
- data/doc/Inquery/Mixins/SchemaValidation.html +1 -1
- data/doc/Inquery/Mixins.html +1 -1
- data/doc/Inquery/Query/Chainable.html +1 -1
- data/doc/Inquery/Query.html +1 -1
- data/doc/Inquery.html +113 -1
- data/doc/_index.html +1 -1
- data/doc/file.README.html +19 -4
- data/doc/index.html +19 -4
- data/doc/method_list.html +20 -12
- data/doc/top-level-namespace.html +1 -1
- data/inquery.gemspec +3 -3
- data/lib/inquery/mixins/schema_validation.rb +8 -1
- data/lib/inquery.rb +7 -0
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1196c966133abae58b4ba672eebc7fadf0852f4de0ff879673322bf6bfb4a285
|
|
4
|
+
data.tar.gz: 534d1e42f4df591e5cdb1e5e5995c8a3479f1afe03d6bb45d03773ad29c0838f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 31c7638d4a5eb7b32df879028bd01ee612254b1c34ffd2851be7851a5bb72488851748eba904ce6c7967e70e98ba4a85729960a00addd093ea622cdf96f3df30
|
|
7
|
+
data.tar.gz: 0fbe2057d13400d67546ee5722eb85b5e04cc794552c85043d3e939bc89cbd55eff247f8c4b28d681297d2e1305be32da61fc47d1c811868822cf2c36e9759ac
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Change log
|
|
2
2
|
|
|
3
|
+
## 1.0.11 (2023-08-24)
|
|
4
|
+
|
|
5
|
+
* Add configuration option `config.default_schema_version` that allows you to
|
|
6
|
+
specify the schema version in effect when using the `schema` DSL method. For
|
|
7
|
+
backwards compatibility, this new setting defaults to `2`.
|
|
8
|
+
|
|
9
|
+
Internal reference: `#115859`.
|
|
10
|
+
|
|
3
11
|
## 1.0.10 (2022-05-19)
|
|
4
12
|
|
|
5
13
|
* Update gem-internal ruby version and remove `bundler` from gemspec
|
|
@@ -38,7 +46,7 @@
|
|
|
38
46
|
|
|
39
47
|
## 1.0.3 (2020-05-12)
|
|
40
48
|
|
|
41
|
-
- Overwrite parameter hash with the casted version if using
|
|
49
|
+
- Overwrite parameter hash with the casted version if using
|
|
42
50
|
casting inside the schemacop `schema` block
|
|
43
51
|
|
|
44
52
|
## 1.0.2 (2019-10-09)
|
data/LICENSE
CHANGED
data/README.md
CHANGED
|
@@ -29,6 +29,7 @@ Inquery is tested with the following ruby versions:
|
|
|
29
29
|
* 2.6.2
|
|
30
30
|
* 2.7.1
|
|
31
31
|
* 3.0.1
|
|
32
|
+
* 3.2.1
|
|
32
33
|
|
|
33
34
|
Other ruby versions might work but are not covered by our automated tests.
|
|
34
35
|
|
|
@@ -297,7 +298,9 @@ end
|
|
|
297
298
|
```
|
|
298
299
|
|
|
299
300
|
Inquery supports both schemacop specification versions 2 and 3 using the methods
|
|
300
|
-
`
|
|
301
|
+
`schema2` for version 2 and method `schema3` for version 3. You can also use the
|
|
302
|
+
method `schema`, which defaults to the schema version configured using
|
|
303
|
+
`config.default_schema_version` (see [Configuration](#Configuration)).
|
|
301
304
|
|
|
302
305
|
## Rails integration
|
|
303
306
|
|
|
@@ -306,6 +309,18 @@ perfectly integrated into any Rails application. It has proven to be a winning
|
|
|
306
309
|
concept to extract all complex queries into separate classes that are
|
|
307
310
|
independently executable and testable.
|
|
308
311
|
|
|
312
|
+
## Configuration
|
|
313
|
+
|
|
314
|
+
Inquery can be configured globally using an optional initializer:
|
|
315
|
+
|
|
316
|
+
```ruby
|
|
317
|
+
# config/initializers/inquery.rb
|
|
318
|
+
Inquery.setup do |config|
|
|
319
|
+
# Specify the default schemacop schema version. Can be one of 2 or 3.
|
|
320
|
+
# config.default_schema_version = 2
|
|
321
|
+
end
|
|
322
|
+
```
|
|
323
|
+
|
|
309
324
|
### Directory structure
|
|
310
325
|
|
|
311
326
|
While not enforced, it is encouraged to use the following structure for storing
|
|
@@ -333,8 +348,9 @@ There are some key benefits to this approach:
|
|
|
333
348
|
## Contributors
|
|
334
349
|
|
|
335
350
|
Thanks to Jeroen Weeink for his insights regarding using query classes as scopes
|
|
336
|
-
in his [blog
|
|
351
|
+
in his [blog
|
|
352
|
+
post](http://craftingruby.com/posts/2015/06/29/query-objects-through-scopes.html).
|
|
337
353
|
|
|
338
354
|
## Copyright
|
|
339
355
|
|
|
340
|
-
Copyright © 2016 -
|
|
356
|
+
Copyright © 2016 - 2023 Sitrox. See `LICENSE` for further details.
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.0.
|
|
1
|
+
1.0.11
|
|
@@ -118,7 +118,7 @@
|
|
|
118
118
|
</div>
|
|
119
119
|
|
|
120
120
|
<div id="footer">
|
|
121
|
-
Generated on Thu
|
|
121
|
+
Generated on Thu Aug 24 11:11:23 2023 by
|
|
122
122
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
123
123
|
0.9.27 (ruby-3.0.1).
|
|
124
124
|
</div>
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
</div>
|
|
123
123
|
|
|
124
124
|
<div id="footer">
|
|
125
|
-
Generated on Thu
|
|
125
|
+
Generated on Thu Aug 24 11:11:23 2023 by
|
|
126
126
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
127
127
|
0.9.27 (ruby-3.0.1).
|
|
128
128
|
</div>
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
</div>
|
|
123
123
|
|
|
124
124
|
<div id="footer">
|
|
125
|
-
Generated on Thu
|
|
125
|
+
Generated on Thu Aug 24 11:11:23 2023 by
|
|
126
126
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
127
127
|
0.9.27 (ruby-3.0.1).
|
|
128
128
|
</div>
|
data/doc/Inquery/Exceptions.html
CHANGED
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
</div>
|
|
106
106
|
|
|
107
107
|
<div id="footer">
|
|
108
|
-
Generated on Thu
|
|
108
|
+
Generated on Thu Aug 24 11:11:23 2023 by
|
|
109
109
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
110
110
|
0.9.27 (ruby-3.0.1).
|
|
111
111
|
</div>
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
</div>
|
|
107
107
|
|
|
108
108
|
<div id="footer">
|
|
109
|
-
Generated on Thu
|
|
109
|
+
Generated on Thu Aug 24 11:11:23 2023 by
|
|
110
110
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
111
111
|
0.9.27 (ruby-3.0.1).
|
|
112
112
|
</div>
|
|
@@ -178,7 +178,7 @@ on. See <span class='object_link'><a href="../RelationValidation.html#OPTIONS_SC
|
|
|
178
178
|
</div>
|
|
179
179
|
|
|
180
180
|
<div id="footer">
|
|
181
|
-
Generated on Thu
|
|
181
|
+
Generated on Thu Aug 24 11:11:23 2023 by
|
|
182
182
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
183
183
|
0.9.27 (ruby-3.0.1).
|
|
184
184
|
</div>
|
|
@@ -325,7 +325,7 @@ options specified at class level using the <code>relation</code> method.</p>
|
|
|
325
325
|
</div>
|
|
326
326
|
|
|
327
327
|
<div id="footer">
|
|
328
|
-
Generated on Thu
|
|
328
|
+
Generated on Thu Aug 24 11:11:23 2023 by
|
|
329
329
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
330
330
|
0.9.27 (ruby-3.0.1).
|
|
331
331
|
</div>
|
|
@@ -206,13 +206,27 @@
|
|
|
206
206
|
|
|
207
207
|
25
|
|
208
208
|
26
|
|
209
|
-
27
|
|
209
|
+
27
|
|
210
|
+
28
|
|
211
|
+
29
|
|
212
|
+
30
|
|
213
|
+
31
|
|
214
|
+
32
|
|
215
|
+
33
|
|
216
|
+
34</pre>
|
|
210
217
|
</td>
|
|
211
218
|
<td>
|
|
212
219
|
<pre class="code"><span class="info file"># File 'lib/inquery/mixins/schema_validation.rb', line 25</span>
|
|
213
220
|
|
|
214
221
|
<span class='kw'>def</span> <span class='id identifier rubyid_schema'>schema</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
|
215
|
-
<span class='
|
|
222
|
+
<span class='kw'>case</span> <span class='const'><span class='object_link'><a href="../../../Inquery.html" title="Inquery (module)">Inquery</a></span></span><span class='period'>.</span><span class='id identifier rubyid_default_schema_version'>default_schema_version</span>
|
|
223
|
+
<span class='kw'>when</span> <span class='int'>2</span>
|
|
224
|
+
<span class='id identifier rubyid_schema2'>schema2</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
|
225
|
+
<span class='kw'>when</span> <span class='int'>3</span>
|
|
226
|
+
<span class='id identifier rubyid_schema3'>schema3</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
|
227
|
+
<span class='kw'>else</span>
|
|
228
|
+
<span class='id identifier rubyid_fail'>fail</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Schemacop schema versions supported are 2 and 3.</span><span class='tstring_end'>'</span></span>
|
|
229
|
+
<span class='kw'>end</span>
|
|
216
230
|
<span class='kw'>end</span></pre>
|
|
217
231
|
</td>
|
|
218
232
|
</tr>
|
|
@@ -292,7 +306,7 @@
|
|
|
292
306
|
</div>
|
|
293
307
|
|
|
294
308
|
<div id="footer">
|
|
295
|
-
Generated on Thu
|
|
309
|
+
Generated on Thu Aug 24 11:11:23 2023 by
|
|
296
310
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
297
311
|
0.9.27 (ruby-3.0.1).
|
|
298
312
|
</div>
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
</div>
|
|
117
117
|
|
|
118
118
|
<div id="footer">
|
|
119
|
-
Generated on Thu
|
|
119
|
+
Generated on Thu Aug 24 11:11:23 2023 by
|
|
120
120
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
121
121
|
0.9.27 (ruby-3.0.1).
|
|
122
122
|
</div>
|
data/doc/Inquery/Mixins.html
CHANGED
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
</div>
|
|
108
108
|
|
|
109
109
|
<div id="footer">
|
|
110
|
-
Generated on Thu
|
|
110
|
+
Generated on Thu Aug 24 11:11:23 2023 by
|
|
111
111
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
112
112
|
0.9.27 (ruby-3.0.1).
|
|
113
113
|
</div>
|
|
@@ -529,7 +529,7 @@
|
|
|
529
529
|
</div>
|
|
530
530
|
|
|
531
531
|
<div id="footer">
|
|
532
|
-
Generated on Thu
|
|
532
|
+
Generated on Thu Aug 24 11:11:23 2023 by
|
|
533
533
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
534
534
|
0.9.27 (ruby-3.0.1).
|
|
535
535
|
</div>
|
data/doc/Inquery/Query.html
CHANGED
|
@@ -779,7 +779,7 @@ easyer access.</p>
|
|
|
779
779
|
</div>
|
|
780
780
|
|
|
781
781
|
<div id="footer">
|
|
782
|
-
Generated on Thu
|
|
782
|
+
Generated on Thu Aug 24 11:11:23 2023 by
|
|
783
783
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
784
784
|
0.9.27 (ruby-3.0.1).
|
|
785
785
|
</div>
|
data/doc/Inquery.html
CHANGED
|
@@ -104,12 +104,124 @@
|
|
|
104
104
|
|
|
105
105
|
|
|
106
106
|
|
|
107
|
+
|
|
108
|
+
<h2>
|
|
109
|
+
Class Method Summary
|
|
110
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
|
111
|
+
</h2>
|
|
112
|
+
|
|
113
|
+
<ul class="summary">
|
|
114
|
+
|
|
115
|
+
<li class="public ">
|
|
116
|
+
<span class="summary_signature">
|
|
117
|
+
|
|
118
|
+
<a href="#setup-class_method" title="setup (class method)">.<strong>setup</strong> {|_self| ... } ⇒ Object </a>
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
</span>
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
<span class="summary_desc"><div class='inline'><p>Setup method that should be called in a dedicated initializer.</p>
|
|
133
|
+
</div></span>
|
|
134
|
+
|
|
135
|
+
</li>
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
</ul>
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
|
|
107
142
|
|
|
143
|
+
<div id="class_method_details" class="method_details_list">
|
|
144
|
+
<h2>Class Method Details</h2>
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
<div class="method_details first">
|
|
148
|
+
<h3 class="signature first" id="setup-class_method">
|
|
149
|
+
|
|
150
|
+
.<strong>setup</strong> {|_self| ... } ⇒ <tt>Object</tt>
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
</h3><div class="docstring">
|
|
157
|
+
<div class="discussion">
|
|
158
|
+
<p>Setup method that should be called in a dedicated initializer.</p>
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
<div class="tags">
|
|
164
|
+
|
|
165
|
+
<p class="tag_title">Yields:</p>
|
|
166
|
+
<ul class="yield">
|
|
167
|
+
|
|
168
|
+
<li>
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
<span class='type'>(<tt>_self</tt>)</span>
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
</li>
|
|
176
|
+
|
|
177
|
+
</ul>
|
|
178
|
+
<p class="tag_title">Yield Parameters:</p>
|
|
179
|
+
<ul class="yieldparam">
|
|
180
|
+
|
|
181
|
+
<li>
|
|
182
|
+
|
|
183
|
+
<span class='name'>_self</span>
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
<span class='type'>(<tt><span class='object_link'><a href="" title="Inquery (module)">Inquery</a></span></tt>)</span>
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
—
|
|
191
|
+
<div class='inline'><p>the object that the method was called on</p>
|
|
192
|
+
</div>
|
|
193
|
+
|
|
194
|
+
</li>
|
|
195
|
+
|
|
196
|
+
</ul>
|
|
197
|
+
|
|
198
|
+
</div><table class="source_code">
|
|
199
|
+
<tr>
|
|
200
|
+
<td>
|
|
201
|
+
<pre class="lines">
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
6
|
|
205
|
+
7
|
|
206
|
+
8</pre>
|
|
207
|
+
</td>
|
|
208
|
+
<td>
|
|
209
|
+
<pre class="code"><span class="info file"># File 'lib/inquery.rb', line 6</span>
|
|
210
|
+
|
|
211
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_setup'>setup</span>
|
|
212
|
+
<span class='kw'>yield</span> <span class='kw'>self</span>
|
|
213
|
+
<span class='kw'>end</span></pre>
|
|
214
|
+
</td>
|
|
215
|
+
</tr>
|
|
216
|
+
</table>
|
|
217
|
+
</div>
|
|
218
|
+
|
|
219
|
+
</div>
|
|
108
220
|
|
|
109
221
|
</div>
|
|
110
222
|
|
|
111
223
|
<div id="footer">
|
|
112
|
-
Generated on Thu
|
|
224
|
+
Generated on Thu Aug 24 11:11:23 2023 by
|
|
113
225
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
114
226
|
0.9.27 (ruby-3.0.1).
|
|
115
227
|
</div>
|
data/doc/_index.html
CHANGED
|
@@ -248,7 +248,7 @@
|
|
|
248
248
|
</div>
|
|
249
249
|
|
|
250
250
|
<div id="footer">
|
|
251
|
-
Generated on Thu
|
|
251
|
+
Generated on Thu Aug 24 11:11:23 2023 by
|
|
252
252
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
253
253
|
0.9.27 (ruby-3.0.1).
|
|
254
254
|
</div>
|
data/doc/file.README.html
CHANGED
|
@@ -87,6 +87,7 @@ to your <code>Gemfile</code>:</p>
|
|
|
87
87
|
<li>2.6.2</li>
|
|
88
88
|
<li>2.7.1</li>
|
|
89
89
|
<li>3.0.1</li>
|
|
90
|
+
<li>3.2.1</li>
|
|
90
91
|
</ul>
|
|
91
92
|
|
|
92
93
|
<p>Other ruby versions might work but are not covered by our automated tests.</p>
|
|
@@ -343,7 +344,9 @@ access.</p>
|
|
|
343
344
|
</code></pre>
|
|
344
345
|
|
|
345
346
|
<p>Inquery supports both schemacop specification versions 2 and 3 using the methods
|
|
346
|
-
<code>
|
|
347
|
+
<code>schema2</code> for version 2 and method <code>schema3</code> for version 3. You can also use the
|
|
348
|
+
method <code>schema</code>, which defaults to the schema version configured using
|
|
349
|
+
<code>config.default_schema_version</code> (see <a href="#Configuration">Configuration</a>).</p>
|
|
347
350
|
|
|
348
351
|
<h2 id="rails-integration">Rails integration</h2>
|
|
349
352
|
|
|
@@ -352,6 +355,17 @@ perfectly integrated into any Rails application. It has proven to be a winning
|
|
|
352
355
|
concept to extract all complex queries into separate classes that are
|
|
353
356
|
independently executable and testable.</p>
|
|
354
357
|
|
|
358
|
+
<h2 id="configuration">Configuration</h2>
|
|
359
|
+
|
|
360
|
+
<p>Inquery can be configured globally using an optional initializer:</p>
|
|
361
|
+
|
|
362
|
+
<pre class="code ruby"><code class="ruby"><span class='comment'># config/initializers/inquery.rb
|
|
363
|
+
</span><span class='const'><span class='object_link'><a href="Inquery.html" title="Inquery (module)">Inquery</a></span></span><span class='period'>.</span><span class='id identifier rubyid_setup'><span class='object_link'><a href="Inquery.html#setup-class_method" title="Inquery.setup (method)">setup</a></span></span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_config'>config</span><span class='op'>|</span>
|
|
364
|
+
<span class='comment'># Specify the default schemacop schema version. Can be one of 2 or 3.
|
|
365
|
+
</span> <span class='comment'># config.default_schema_version = 2
|
|
366
|
+
</span><span class='kw'>end</span>
|
|
367
|
+
</code></pre>
|
|
368
|
+
|
|
355
369
|
<h3 id="directory-structure">Directory structure</h3>
|
|
356
370
|
|
|
357
371
|
<p>While not enforced, it is encouraged to use the following structure for storing
|
|
@@ -383,15 +397,16 @@ query classes.</li>
|
|
|
383
397
|
<h2 id="contributors">Contributors</h2>
|
|
384
398
|
|
|
385
399
|
<p>Thanks to Jeroen Weeink for his insights regarding using query classes as scopes
|
|
386
|
-
in his <a href="http://craftingruby.com/posts/2015/06/29/query-objects-through-scopes.html">blog
|
|
400
|
+
in his <a href="http://craftingruby.com/posts/2015/06/29/query-objects-through-scopes.html">blog
|
|
401
|
+
post</a>.</p>
|
|
387
402
|
|
|
388
403
|
<h2 id="copyright">Copyright</h2>
|
|
389
404
|
|
|
390
|
-
<p>Copyright © 2016 -
|
|
405
|
+
<p>Copyright © 2016 - 2023 Sitrox. See <code>LICENSE</code> for further details.</p>
|
|
391
406
|
</div></div>
|
|
392
407
|
|
|
393
408
|
<div id="footer">
|
|
394
|
-
Generated on Thu
|
|
409
|
+
Generated on Thu Aug 24 11:11:23 2023 by
|
|
395
410
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
396
411
|
0.9.27 (ruby-3.0.1).
|
|
397
412
|
</div>
|
data/doc/index.html
CHANGED
|
@@ -87,6 +87,7 @@ to your <code>Gemfile</code>:</p>
|
|
|
87
87
|
<li>2.6.2</li>
|
|
88
88
|
<li>2.7.1</li>
|
|
89
89
|
<li>3.0.1</li>
|
|
90
|
+
<li>3.2.1</li>
|
|
90
91
|
</ul>
|
|
91
92
|
|
|
92
93
|
<p>Other ruby versions might work but are not covered by our automated tests.</p>
|
|
@@ -343,7 +344,9 @@ access.</p>
|
|
|
343
344
|
</code></pre>
|
|
344
345
|
|
|
345
346
|
<p>Inquery supports both schemacop specification versions 2 and 3 using the methods
|
|
346
|
-
<code>
|
|
347
|
+
<code>schema2</code> for version 2 and method <code>schema3</code> for version 3. You can also use the
|
|
348
|
+
method <code>schema</code>, which defaults to the schema version configured using
|
|
349
|
+
<code>config.default_schema_version</code> (see <a href="#Configuration">Configuration</a>).</p>
|
|
347
350
|
|
|
348
351
|
<h2 id="rails-integration">Rails integration</h2>
|
|
349
352
|
|
|
@@ -352,6 +355,17 @@ perfectly integrated into any Rails application. It has proven to be a winning
|
|
|
352
355
|
concept to extract all complex queries into separate classes that are
|
|
353
356
|
independently executable and testable.</p>
|
|
354
357
|
|
|
358
|
+
<h2 id="configuration">Configuration</h2>
|
|
359
|
+
|
|
360
|
+
<p>Inquery can be configured globally using an optional initializer:</p>
|
|
361
|
+
|
|
362
|
+
<pre class="code ruby"><code class="ruby"><span class='comment'># config/initializers/inquery.rb
|
|
363
|
+
</span><span class='const'><span class='object_link'><a href="Inquery.html" title="Inquery (module)">Inquery</a></span></span><span class='period'>.</span><span class='id identifier rubyid_setup'><span class='object_link'><a href="Inquery.html#setup-class_method" title="Inquery.setup (method)">setup</a></span></span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_config'>config</span><span class='op'>|</span>
|
|
364
|
+
<span class='comment'># Specify the default schemacop schema version. Can be one of 2 or 3.
|
|
365
|
+
</span> <span class='comment'># config.default_schema_version = 2
|
|
366
|
+
</span><span class='kw'>end</span>
|
|
367
|
+
</code></pre>
|
|
368
|
+
|
|
355
369
|
<h3 id="directory-structure">Directory structure</h3>
|
|
356
370
|
|
|
357
371
|
<p>While not enforced, it is encouraged to use the following structure for storing
|
|
@@ -383,15 +397,16 @@ query classes.</li>
|
|
|
383
397
|
<h2 id="contributors">Contributors</h2>
|
|
384
398
|
|
|
385
399
|
<p>Thanks to Jeroen Weeink for his insights regarding using query classes as scopes
|
|
386
|
-
in his <a href="http://craftingruby.com/posts/2015/06/29/query-objects-through-scopes.html">blog
|
|
400
|
+
in his <a href="http://craftingruby.com/posts/2015/06/29/query-objects-through-scopes.html">blog
|
|
401
|
+
post</a>.</p>
|
|
387
402
|
|
|
388
403
|
<h2 id="copyright">Copyright</h2>
|
|
389
404
|
|
|
390
|
-
<p>Copyright © 2016 -
|
|
405
|
+
<p>Copyright © 2016 - 2023 Sitrox. See <code>LICENSE</code> for further details.</p>
|
|
391
406
|
</div></div>
|
|
392
407
|
|
|
393
408
|
<div id="footer">
|
|
394
|
-
Generated on Thu
|
|
409
|
+
Generated on Thu Aug 24 11:11:23 2023 by
|
|
395
410
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
396
411
|
0.9.27 (ruby-3.0.1).
|
|
397
412
|
</div>
|
data/doc/method_list.html
CHANGED
|
@@ -46,32 +46,32 @@
|
|
|
46
46
|
|
|
47
47
|
<li class="odd ">
|
|
48
48
|
<div class="item">
|
|
49
|
-
<span class='object_link'><a href="Inquery/Query
|
|
50
|
-
<small>Inquery::Query
|
|
49
|
+
<span class='object_link'><a href="Inquery/Query.html#call-instance_method" title="Inquery::Query#call (method)">#call</a></span>
|
|
50
|
+
<small>Inquery::Query</small>
|
|
51
51
|
</div>
|
|
52
52
|
</li>
|
|
53
53
|
|
|
54
54
|
|
|
55
55
|
<li class="even ">
|
|
56
56
|
<div class="item">
|
|
57
|
-
<span class='object_link'><a href="Inquery/Query.html#call-instance_method" title="Inquery::Query#call (method)">#call</a></span>
|
|
58
|
-
<small>Inquery::Query</small>
|
|
57
|
+
<span class='object_link'><a href="Inquery/Query/Chainable.html#call-instance_method" title="Inquery::Query::Chainable#call (method)">#call</a></span>
|
|
58
|
+
<small>Inquery::Query::Chainable</small>
|
|
59
59
|
</div>
|
|
60
60
|
</li>
|
|
61
61
|
|
|
62
62
|
|
|
63
63
|
<li class="odd ">
|
|
64
64
|
<div class="item">
|
|
65
|
-
<span class='object_link'><a href="Inquery/Query.html#call-class_method" title="Inquery::Query.call (method)">call</a></span>
|
|
66
|
-
<small>Inquery::Query</small>
|
|
65
|
+
<span class='object_link'><a href="Inquery/Query/Chainable.html#call-class_method" title="Inquery::Query::Chainable.call (method)">call</a></span>
|
|
66
|
+
<small>Inquery::Query::Chainable</small>
|
|
67
67
|
</div>
|
|
68
68
|
</li>
|
|
69
69
|
|
|
70
70
|
|
|
71
71
|
<li class="even ">
|
|
72
72
|
<div class="item">
|
|
73
|
-
<span class='object_link'><a href="Inquery/Query
|
|
74
|
-
<small>Inquery::Query
|
|
73
|
+
<span class='object_link'><a href="Inquery/Query.html#call-class_method" title="Inquery::Query.call (method)">call</a></span>
|
|
74
|
+
<small>Inquery::Query</small>
|
|
75
75
|
</div>
|
|
76
76
|
</li>
|
|
77
77
|
|
|
@@ -134,16 +134,16 @@
|
|
|
134
134
|
|
|
135
135
|
<li class="even ">
|
|
136
136
|
<div class="item">
|
|
137
|
-
<span class='object_link'><a href="Inquery/
|
|
138
|
-
<small>Inquery::
|
|
137
|
+
<span class='object_link'><a href="Inquery/Mixins/RelationValidation/ClassMethods.html#relation-instance_method" title="Inquery::Mixins::RelationValidation::ClassMethods#relation (method)">#relation</a></span>
|
|
138
|
+
<small>Inquery::Mixins::RelationValidation::ClassMethods</small>
|
|
139
139
|
</div>
|
|
140
140
|
</li>
|
|
141
141
|
|
|
142
142
|
|
|
143
143
|
<li class="odd ">
|
|
144
144
|
<div class="item">
|
|
145
|
-
<span class='object_link'><a href="Inquery/
|
|
146
|
-
<small>Inquery::
|
|
145
|
+
<span class='object_link'><a href="Inquery/Query/Chainable.html#relation-instance_method" title="Inquery::Query::Chainable#relation (method)">#relation</a></span>
|
|
146
|
+
<small>Inquery::Query::Chainable</small>
|
|
147
147
|
</div>
|
|
148
148
|
</li>
|
|
149
149
|
|
|
@@ -189,6 +189,14 @@
|
|
|
189
189
|
|
|
190
190
|
|
|
191
191
|
<li class="odd ">
|
|
192
|
+
<div class="item">
|
|
193
|
+
<span class='object_link'><a href="Inquery.html#setup-class_method" title="Inquery.setup (method)">setup</a></span>
|
|
194
|
+
<small>Inquery</small>
|
|
195
|
+
</div>
|
|
196
|
+
</li>
|
|
197
|
+
|
|
198
|
+
|
|
199
|
+
<li class="even ">
|
|
192
200
|
<div class="item">
|
|
193
201
|
<span class='object_link'><a href="Inquery/Mixins/RelationValidation.html#validate_relation!-instance_method" title="Inquery::Mixins::RelationValidation#validate_relation! (method)">#validate_relation!</a></span>
|
|
194
202
|
<small>Inquery::Mixins::RelationValidation</small>
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
</div>
|
|
101
101
|
|
|
102
102
|
<div id="footer">
|
|
103
|
-
Generated on Thu
|
|
103
|
+
Generated on Thu Aug 24 11:11:23 2023 by
|
|
104
104
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
105
105
|
0.9.27 (ruby-3.0.1).
|
|
106
106
|
</div>
|
data/inquery.gemspec
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
-
# stub: inquery 1.0.
|
|
2
|
+
# stub: inquery 1.0.11 ruby lib
|
|
3
3
|
|
|
4
4
|
Gem::Specification.new do |s|
|
|
5
5
|
s.name = "inquery".freeze
|
|
6
|
-
s.version = "1.0.
|
|
6
|
+
s.version = "1.0.11"
|
|
7
7
|
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
|
9
9
|
s.require_paths = ["lib".freeze]
|
|
10
10
|
s.authors = ["Sitrox".freeze]
|
|
11
|
-
s.date = "
|
|
11
|
+
s.date = "2023-08-24"
|
|
12
12
|
s.files = [".github/workflows/rubocop.yml".freeze, ".github/workflows/ruby.yml".freeze, ".gitignore".freeze, ".releaser_config".freeze, ".rubocop.yml".freeze, ".yardopts".freeze, "Appraisals".freeze, "CHANGELOG.md".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "RUBY_VERSION".freeze, "Rakefile".freeze, "VERSION".freeze, "doc/Inquery.html".freeze, "doc/Inquery/Exceptions.html".freeze, "doc/Inquery/Exceptions/Base.html".freeze, "doc/Inquery/Exceptions/InvalidRelation.html".freeze, "doc/Inquery/Exceptions/UnknownCallSignature.html".freeze, "doc/Inquery/Mixins.html".freeze, "doc/Inquery/Mixins/RawSqlUtils.html".freeze, "doc/Inquery/Mixins/RelationValidation.html".freeze, "doc/Inquery/Mixins/RelationValidation/ClassMethods.html".freeze, "doc/Inquery/Mixins/SchemaValidation.html".freeze, "doc/Inquery/Mixins/SchemaValidation/ClassMethods.html".freeze, "doc/Inquery/Query.html".freeze, "doc/Inquery/Query/Chainable.html".freeze, "doc/_index.html".freeze, "doc/class_list.html".freeze, "doc/css/common.css".freeze, "doc/css/full_list.css".freeze, "doc/css/style.css".freeze, "doc/file.README.html".freeze, "doc/file_list.html".freeze, "doc/frames.html".freeze, "doc/index.html".freeze, "doc/js/app.js".freeze, "doc/js/full_list.js".freeze, "doc/js/jquery.js".freeze, "doc/method_list.html".freeze, "doc/top-level-namespace.html".freeze, "gemfiles/rails_5.1.gemfile".freeze, "gemfiles/rails_5.2.gemfile".freeze, "gemfiles/rails_6.0.gemfile".freeze, "gemfiles/rails_6.1.gemfile".freeze, "gemfiles/rails_7.0.gemfile".freeze, "inquery.gemspec".freeze, "lib/inquery.rb".freeze, "lib/inquery/exceptions.rb".freeze, "lib/inquery/mixins/raw_sql_utils.rb".freeze, "lib/inquery/mixins/relation_validation.rb".freeze, "lib/inquery/mixins/schema_validation.rb".freeze, "lib/inquery/query.rb".freeze, "lib/inquery/query/chainable.rb".freeze, "test/db/models.rb".freeze, "test/db/schema.rb".freeze, "test/inquery/query/chainable_test.rb".freeze, "test/inquery/query_test.rb".freeze, "test/queries/group/fetch_as_json.rb".freeze, "test/queries/group/fetch_green.rb".freeze, "test/queries/group/fetch_red.rb".freeze, "test/queries/group/filter_with_color.rb".freeze, "test/queries/user/fetch_all.rb".freeze, "test/queries/user/fetch_in_group.rb".freeze, "test/queries/user/fetch_in_group_rel.rb".freeze, "test/test_helper.rb".freeze]
|
|
13
13
|
s.rubygems_version = "3.2.16".freeze
|
|
14
14
|
s.summary = "A skeleton that allows extracting queries into atomic, reusable classes.".freeze
|
|
@@ -23,7 +23,14 @@ module Inquery
|
|
|
23
23
|
|
|
24
24
|
# @see schema2
|
|
25
25
|
def schema(*args, &block)
|
|
26
|
-
|
|
26
|
+
case Inquery.default_schema_version
|
|
27
|
+
when 2
|
|
28
|
+
schema2(*args, &block)
|
|
29
|
+
when 3
|
|
30
|
+
schema3(*args, &block)
|
|
31
|
+
else
|
|
32
|
+
fail 'Schemacop schema versions supported are 2 and 3.'
|
|
33
|
+
end
|
|
27
34
|
end
|
|
28
35
|
end
|
|
29
36
|
end
|
data/lib/inquery.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: inquery
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.11
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sitrox
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-08-24 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: appraisal
|
|
@@ -254,7 +254,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
254
254
|
- !ruby/object:Gem::Version
|
|
255
255
|
version: '0'
|
|
256
256
|
requirements: []
|
|
257
|
-
rubygems_version: 3.
|
|
257
|
+
rubygems_version: 3.4.10
|
|
258
258
|
signing_key:
|
|
259
259
|
specification_version: 4
|
|
260
260
|
summary: A skeleton that allows extracting queries into atomic, reusable classes.
|