inquery 1.0.4 → 1.0.9
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/.releaser_config +1 -0
- data/.rubocop.yml +63 -2
- data/.travis.yml +4 -1
- data/CHANGELOG.md +28 -0
- data/LICENSE +1 -1
- data/README.md +15 -1
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/doc/Inquery.html +3 -3
- data/doc/Inquery/Exceptions.html +3 -3
- data/doc/Inquery/Exceptions/Base.html +3 -3
- data/doc/Inquery/Exceptions/InvalidRelation.html +3 -3
- data/doc/Inquery/Exceptions/UnknownCallSignature.html +3 -3
- data/doc/Inquery/Mixins.html +3 -3
- data/doc/Inquery/Mixins/RawSqlUtils.html +3 -3
- data/doc/Inquery/Mixins/RelationValidation.html +8 -8
- data/doc/Inquery/Mixins/RelationValidation/ClassMethods.html +3 -3
- data/doc/Inquery/Mixins/SchemaValidation.html +3 -3
- data/doc/Inquery/Mixins/SchemaValidation/ClassMethods.html +129 -13
- data/doc/Inquery/Query.html +3 -3
- data/doc/Inquery/Query/Chainable.html +3 -3
- data/doc/_index.html +8 -8
- data/doc/css/style.css +1 -0
- data/doc/file.README.html +20 -4
- data/doc/frames.html +1 -1
- data/doc/index.html +20 -4
- data/doc/method_list.html +27 -11
- data/doc/top-level-namespace.html +3 -3
- data/inquery.gemspec +9 -9
- data/lib/inquery/mixins/relation_validation.rb +8 -8
- data/lib/inquery/mixins/schema_validation.rb +12 -5
- data/test/test_helper.rb +1 -1
- metadata +15 -15
@@ -6,7 +6,7 @@
|
|
6
6
|
<title>
|
7
7
|
Top Level Namespace
|
8
8
|
|
9
|
-
— Documentation by YARD 0.9.
|
9
|
+
— Documentation by YARD 0.9.26
|
10
10
|
|
11
11
|
</title>
|
12
12
|
|
@@ -100,9 +100,9 @@
|
|
100
100
|
</div>
|
101
101
|
|
102
102
|
<div id="footer">
|
103
|
-
Generated on
|
103
|
+
Generated on Wed Feb 24 10:57:42 2021 by
|
104
104
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
105
|
-
0.9.
|
105
|
+
0.9.26 (ruby-2.6.2).
|
106
106
|
</div>
|
107
107
|
|
108
108
|
</div>
|
data/inquery.gemspec
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# stub: inquery 1.0.
|
2
|
+
# stub: inquery 1.0.9 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.9"
|
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 = "2021-02-24"
|
12
12
|
s.files = [".gitignore".freeze, ".releaser_config".freeze, ".rubocop.yml".freeze, ".travis.yml".freeze, ".yardopts".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, "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.0.3".freeze
|
14
14
|
s.summary = "A skeleton that allows extracting queries into atomic, reusable classes.".freeze
|
@@ -23,24 +23,24 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.add_development_dependency(%q<sqlite3>.freeze, [">= 0"])
|
24
24
|
s.add_development_dependency(%q<haml>.freeze, [">= 0"])
|
25
25
|
s.add_development_dependency(%q<yard>.freeze, [">= 0"])
|
26
|
-
s.add_development_dependency(%q<rubocop>.freeze, ["= 0.
|
26
|
+
s.add_development_dependency(%q<rubocop>.freeze, ["= 0.92.0"])
|
27
27
|
s.add_development_dependency(%q<redcarpet>.freeze, [">= 0"])
|
28
28
|
s.add_runtime_dependency(%q<minitest>.freeze, [">= 0"])
|
29
29
|
s.add_runtime_dependency(%q<activesupport>.freeze, [">= 0"])
|
30
30
|
s.add_runtime_dependency(%q<activerecord>.freeze, [">= 0"])
|
31
|
-
s.add_runtime_dependency(%q<schemacop>.freeze, ["
|
31
|
+
s.add_runtime_dependency(%q<schemacop>.freeze, ["~> 3.0.8"])
|
32
32
|
else
|
33
33
|
s.add_dependency(%q<bundler>.freeze, [">= 0"])
|
34
34
|
s.add_dependency(%q<rake>.freeze, [">= 0"])
|
35
35
|
s.add_dependency(%q<sqlite3>.freeze, [">= 0"])
|
36
36
|
s.add_dependency(%q<haml>.freeze, [">= 0"])
|
37
37
|
s.add_dependency(%q<yard>.freeze, [">= 0"])
|
38
|
-
s.add_dependency(%q<rubocop>.freeze, ["= 0.
|
38
|
+
s.add_dependency(%q<rubocop>.freeze, ["= 0.92.0"])
|
39
39
|
s.add_dependency(%q<redcarpet>.freeze, [">= 0"])
|
40
40
|
s.add_dependency(%q<minitest>.freeze, [">= 0"])
|
41
41
|
s.add_dependency(%q<activesupport>.freeze, [">= 0"])
|
42
42
|
s.add_dependency(%q<activerecord>.freeze, [">= 0"])
|
43
|
-
s.add_dependency(%q<schemacop>.freeze, ["
|
43
|
+
s.add_dependency(%q<schemacop>.freeze, ["~> 3.0.8"])
|
44
44
|
end
|
45
45
|
else
|
46
46
|
s.add_dependency(%q<bundler>.freeze, [">= 0"])
|
@@ -48,11 +48,11 @@ Gem::Specification.new do |s|
|
|
48
48
|
s.add_dependency(%q<sqlite3>.freeze, [">= 0"])
|
49
49
|
s.add_dependency(%q<haml>.freeze, [">= 0"])
|
50
50
|
s.add_dependency(%q<yard>.freeze, [">= 0"])
|
51
|
-
s.add_dependency(%q<rubocop>.freeze, ["= 0.
|
51
|
+
s.add_dependency(%q<rubocop>.freeze, ["= 0.92.0"])
|
52
52
|
s.add_dependency(%q<redcarpet>.freeze, [">= 0"])
|
53
53
|
s.add_dependency(%q<minitest>.freeze, [">= 0"])
|
54
54
|
s.add_dependency(%q<activesupport>.freeze, [">= 0"])
|
55
55
|
s.add_dependency(%q<activerecord>.freeze, [">= 0"])
|
56
|
-
s.add_dependency(%q<schemacop>.freeze, ["
|
56
|
+
s.add_dependency(%q<schemacop>.freeze, ["~> 3.0.8"])
|
57
57
|
end
|
58
58
|
end
|
@@ -3,12 +3,12 @@ module Inquery
|
|
3
3
|
module RelationValidation
|
4
4
|
extend ActiveSupport::Concern
|
5
5
|
|
6
|
-
if defined?(Schemacop::
|
7
|
-
OPTIONS_SCHEMA = Schemacop::
|
6
|
+
if defined?(Schemacop::Schema3)
|
7
|
+
OPTIONS_SCHEMA = Schemacop::Schema3.new(:hash) do
|
8
8
|
str? :class
|
9
9
|
int? :fields
|
10
10
|
sym? :default_select
|
11
|
-
|
11
|
+
obj? :default, classes: [Proc, FalseClass]
|
12
12
|
end
|
13
13
|
else
|
14
14
|
OPTIONS_SCHEMA = Schemacop::Schema.new do
|
@@ -24,26 +24,26 @@ module Inquery
|
|
24
24
|
# `nil` to not perform any checks. The `class` attribute will also be
|
25
25
|
# taken to infer a default if no relation is given and you didn't
|
26
26
|
# specify any `default`.
|
27
|
-
class:
|
27
|
+
class: nil,
|
28
28
|
|
29
29
|
# This allows to specify a default relation that will be taken if no
|
30
30
|
# relation is given. This must be specified as a Proc returning the
|
31
31
|
# relation. Set this to `false` for no default. If this is set to `nil`,
|
32
32
|
# it will try to infer the default from the option `class` (if given).
|
33
|
-
default:
|
33
|
+
default: nil,
|
34
34
|
|
35
35
|
# Allows to restrict the number of fields / values the relation must
|
36
36
|
# select. This is particularly useful if you're using the query as a
|
37
37
|
# subquery and need it to return exactly one field. Use `nil` to not
|
38
38
|
# perform any checks.
|
39
|
-
fields:
|
39
|
+
fields: nil,
|
40
40
|
|
41
41
|
# If this is set to a symbol, the relation does not have any select
|
42
42
|
# fields specified (`select_values` is empty) and `fields` is > 0, it
|
43
43
|
# will automatically select the given field. Use `nil` to disable this
|
44
44
|
# behavior.
|
45
45
|
default_select: :id
|
46
|
-
}
|
46
|
+
}.freeze
|
47
47
|
|
48
48
|
included do
|
49
49
|
class_attribute :_relation_options
|
@@ -91,7 +91,7 @@ module Inquery
|
|
91
91
|
# ---------------------------------------------------------------
|
92
92
|
fields_count = relation.select_values.size
|
93
93
|
|
94
|
-
if fields_count
|
94
|
+
if fields_count.zero? && options[:default_select] && options[:fields] && (options[:fields]).positive?
|
95
95
|
relation = relation.select(options[:default_select])
|
96
96
|
fields_count = 1
|
97
97
|
end
|
@@ -9,14 +9,21 @@ module Inquery
|
|
9
9
|
end
|
10
10
|
|
11
11
|
module ClassMethods
|
12
|
-
def
|
13
|
-
|
14
|
-
|
12
|
+
def schema2(*args, &block)
|
13
|
+
self._schema = Schemacop::Schema.new(*args, &block)
|
14
|
+
end
|
15
|
+
|
16
|
+
def schema3(reference = nil, **options, &block)
|
17
|
+
if reference
|
18
|
+
self._schema = Schemacop::Schema3.new(:reference, options.merge(path: reference))
|
15
19
|
else
|
16
|
-
|
20
|
+
self._schema = Schemacop::Schema3.new(:hash, **options, &block)
|
17
21
|
end
|
22
|
+
end
|
18
23
|
|
19
|
-
|
24
|
+
# @see schema2
|
25
|
+
def schema(*args, &block)
|
26
|
+
schema2(*args, &block)
|
20
27
|
end
|
21
28
|
end
|
22
29
|
end
|
data/test/test_helper.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.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sitrox
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - '='
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: 0.
|
89
|
+
version: 0.92.0
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - '='
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: 0.
|
96
|
+
version: 0.92.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: redcarpet
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -154,18 +154,18 @@ dependencies:
|
|
154
154
|
name: schemacop
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- - "
|
157
|
+
- - "~>"
|
158
158
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
159
|
+
version: 3.0.8
|
160
160
|
type: :runtime
|
161
161
|
prerelease: false
|
162
162
|
version_requirements: !ruby/object:Gem::Requirement
|
163
163
|
requirements:
|
164
|
-
- - "
|
164
|
+
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
167
|
-
description:
|
168
|
-
email:
|
166
|
+
version: 3.0.8
|
167
|
+
description:
|
168
|
+
email:
|
169
169
|
executables: []
|
170
170
|
extensions: []
|
171
171
|
extra_rdoc_files: []
|
@@ -229,10 +229,10 @@ files:
|
|
229
229
|
- test/queries/user/fetch_in_group.rb
|
230
230
|
- test/queries/user/fetch_in_group_rel.rb
|
231
231
|
- test/test_helper.rb
|
232
|
-
homepage:
|
232
|
+
homepage:
|
233
233
|
licenses: []
|
234
234
|
metadata: {}
|
235
|
-
post_install_message:
|
235
|
+
post_install_message:
|
236
236
|
rdoc_options: []
|
237
237
|
require_paths:
|
238
238
|
- lib
|
@@ -247,8 +247,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
247
247
|
- !ruby/object:Gem::Version
|
248
248
|
version: '0'
|
249
249
|
requirements: []
|
250
|
-
rubygems_version: 3.
|
251
|
-
signing_key:
|
250
|
+
rubygems_version: 3.0.3
|
251
|
+
signing_key:
|
252
252
|
specification_version: 4
|
253
253
|
summary: A skeleton that allows extracting queries into atomic, reusable classes.
|
254
254
|
test_files:
|