dbee 2.0.2 → 3.0.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/.gitignore +1 -0
- data/.rubocop.yml +14 -10
- data/.ruby-version +1 -1
- data/.travis.yml +4 -4
- data/CHANGELOG.md +43 -0
- data/README.md +257 -43
- data/dbee.gemspec +17 -6
- data/exe/.gitkeep +0 -0
- data/lib/dbee.rb +10 -10
- data/lib/dbee/base.rb +7 -49
- data/lib/dbee/constant_resolver.rb +34 -0
- data/lib/dbee/dsl/association.rb +8 -19
- data/lib/dbee/dsl_schema_builder.rb +86 -0
- data/lib/dbee/key_chain.rb +11 -0
- data/lib/dbee/model.rb +50 -38
- data/lib/dbee/model/relationships.rb +24 -0
- data/lib/dbee/model/relationships/basic.rb +47 -0
- data/lib/dbee/query.rb +30 -24
- data/lib/dbee/query/field.rb +35 -5
- data/lib/dbee/schema.rb +66 -0
- data/lib/dbee/schema_creator.rb +107 -0
- data/lib/dbee/schema_from_tree_based_model.rb +47 -0
- data/lib/dbee/util/make_keyed_by.rb +50 -0
- data/lib/dbee/version.rb +1 -1
- data/spec/dbee/base_spec.rb +9 -72
- data/spec/dbee/constant_resolver_spec.rb +58 -0
- data/spec/dbee/dsl_schema_builder_spec.rb +106 -0
- data/spec/dbee/key_chain_spec.rb +24 -0
- data/spec/dbee/model/constraints_spec.rb +6 -7
- data/spec/dbee/model_spec.rb +62 -59
- data/spec/dbee/query/field_spec.rb +54 -6
- data/spec/dbee/query/filters_spec.rb +16 -17
- data/spec/dbee/query_spec.rb +55 -62
- data/spec/dbee/schema_creator_spec.rb +163 -0
- data/spec/dbee/schema_from_tree_based_model_spec.rb +31 -0
- data/spec/dbee/schema_spec.rb +62 -0
- data/spec/dbee_spec.rb +17 -37
- data/spec/fixtures/models.yaml +254 -56
- data/spec/spec_helper.rb +7 -0
- metadata +83 -18
data/spec/spec_helper.rb
CHANGED
@@ -9,6 +9,13 @@
|
|
9
9
|
|
10
10
|
require 'yaml'
|
11
11
|
require 'pry'
|
12
|
+
require 'pry-byebug'
|
13
|
+
|
14
|
+
RSpec.configure do |config|
|
15
|
+
# Allow for disabling auto focus mode in certain environments like CI to
|
16
|
+
# prevent false positives when only a subset of the suite passes.
|
17
|
+
config.filter_run_when_matching :focus unless ENV['DISABLE_RSPEC_FOCUS'] == 'true'
|
18
|
+
end
|
12
19
|
|
13
20
|
unless ENV['DISABLE_SIMPLECOV'] == 'true'
|
14
21
|
require 'simplecov'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dbee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Ruggio
|
8
|
-
autorequire:
|
9
|
-
bindir:
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: acts_as_hashable
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '1'
|
20
20
|
- - ">="
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 1.
|
22
|
+
version: 1.2.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: '1'
|
30
30
|
- - ">="
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 1.
|
32
|
+
version: 1.2.0
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: dry-inflector
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,6 +72,20 @@ dependencies:
|
|
72
72
|
- - "~>"
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '0'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: pry-byebug
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - ">="
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '0'
|
82
|
+
type: :development
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
75
89
|
- !ruby/object:Gem::Dependency
|
76
90
|
name: rake
|
77
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,50 +120,77 @@ dependencies:
|
|
106
120
|
requirements:
|
107
121
|
- - "~>"
|
108
122
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
123
|
+
version: '1'
|
110
124
|
type: :development
|
111
125
|
prerelease: false
|
112
126
|
version_requirements: !ruby/object:Gem::Requirement
|
113
127
|
requirements:
|
114
128
|
- - "~>"
|
115
129
|
- !ruby/object:Gem::Version
|
116
|
-
version:
|
130
|
+
version: '1'
|
131
|
+
- !ruby/object:Gem::Dependency
|
132
|
+
name: rubocop-rake
|
133
|
+
requirement: !ruby/object:Gem::Requirement
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
version: '0'
|
138
|
+
type: :development
|
139
|
+
prerelease: false
|
140
|
+
version_requirements: !ruby/object:Gem::Requirement
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
version: '0'
|
145
|
+
- !ruby/object:Gem::Dependency
|
146
|
+
name: rubocop-rspec
|
147
|
+
requirement: !ruby/object:Gem::Requirement
|
148
|
+
requirements:
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
152
|
+
type: :development
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: !ruby/object:Gem::Requirement
|
155
|
+
requirements:
|
156
|
+
- - ">="
|
157
|
+
- !ruby/object:Gem::Version
|
158
|
+
version: '0'
|
117
159
|
- !ruby/object:Gem::Dependency
|
118
160
|
name: simplecov
|
119
161
|
requirement: !ruby/object:Gem::Requirement
|
120
162
|
requirements:
|
121
163
|
- - "~>"
|
122
164
|
- !ruby/object:Gem::Version
|
123
|
-
version: 0.
|
165
|
+
version: 0.19.0
|
124
166
|
type: :development
|
125
167
|
prerelease: false
|
126
168
|
version_requirements: !ruby/object:Gem::Requirement
|
127
169
|
requirements:
|
128
170
|
- - "~>"
|
129
171
|
- !ruby/object:Gem::Version
|
130
|
-
version: 0.
|
172
|
+
version: 0.19.0
|
131
173
|
- !ruby/object:Gem::Dependency
|
132
174
|
name: simplecov-console
|
133
175
|
requirement: !ruby/object:Gem::Requirement
|
134
176
|
requirements:
|
135
177
|
- - "~>"
|
136
178
|
- !ruby/object:Gem::Version
|
137
|
-
version: 0.
|
179
|
+
version: 0.7.0
|
138
180
|
type: :development
|
139
181
|
prerelease: false
|
140
182
|
version_requirements: !ruby/object:Gem::Requirement
|
141
183
|
requirements:
|
142
184
|
- - "~>"
|
143
185
|
- !ruby/object:Gem::Version
|
144
|
-
version: 0.
|
186
|
+
version: 0.7.0
|
145
187
|
description: " Dbee provides a simple-to-use data modeling and query API. The
|
146
188
|
query API can produce SQL using other ORMs, such as Arel/ActiveRecord. The targeted
|
147
189
|
use-case for Dbee is ad-hoc reporting, so the total SQL feature-set that Dbee supports
|
148
190
|
is rather limited.\n"
|
149
191
|
email:
|
150
192
|
- mruggio@bluemarblepayroll.com
|
151
|
-
executables:
|
152
|
-
- console
|
193
|
+
executables: []
|
153
194
|
extensions: []
|
154
195
|
extra_rdoc_files: []
|
155
196
|
files:
|
@@ -167,12 +208,15 @@ files:
|
|
167
208
|
- Rakefile
|
168
209
|
- bin/console
|
169
210
|
- dbee.gemspec
|
211
|
+
- exe/.gitkeep
|
170
212
|
- lib/dbee.rb
|
171
213
|
- lib/dbee/base.rb
|
214
|
+
- lib/dbee/constant_resolver.rb
|
172
215
|
- lib/dbee/dsl/association.rb
|
173
216
|
- lib/dbee/dsl/association_builder.rb
|
174
217
|
- lib/dbee/dsl/methods.rb
|
175
218
|
- lib/dbee/dsl/reflectable.rb
|
219
|
+
- lib/dbee/dsl_schema_builder.rb
|
176
220
|
- lib/dbee/key_chain.rb
|
177
221
|
- lib/dbee/key_path.rb
|
178
222
|
- lib/dbee/model.rb
|
@@ -181,6 +225,8 @@ files:
|
|
181
225
|
- lib/dbee/model/constraints/reference.rb
|
182
226
|
- lib/dbee/model/constraints/static.rb
|
183
227
|
- lib/dbee/model/partitioner.rb
|
228
|
+
- lib/dbee/model/relationships.rb
|
229
|
+
- lib/dbee/model/relationships/basic.rb
|
184
230
|
- lib/dbee/providers.rb
|
185
231
|
- lib/dbee/providers/null_provider.rb
|
186
232
|
- lib/dbee/query.rb
|
@@ -201,8 +247,14 @@ files:
|
|
201
247
|
- lib/dbee/query/sorters/ascending.rb
|
202
248
|
- lib/dbee/query/sorters/base.rb
|
203
249
|
- lib/dbee/query/sorters/descending.rb
|
250
|
+
- lib/dbee/schema.rb
|
251
|
+
- lib/dbee/schema_creator.rb
|
252
|
+
- lib/dbee/schema_from_tree_based_model.rb
|
253
|
+
- lib/dbee/util/make_keyed_by.rb
|
204
254
|
- lib/dbee/version.rb
|
205
255
|
- spec/dbee/base_spec.rb
|
256
|
+
- spec/dbee/constant_resolver_spec.rb
|
257
|
+
- spec/dbee/dsl_schema_builder_spec.rb
|
206
258
|
- spec/dbee/key_chain_spec.rb
|
207
259
|
- spec/dbee/key_path_spec.rb
|
208
260
|
- spec/dbee/model/constraints/base_spec.rb
|
@@ -218,6 +270,9 @@ files:
|
|
218
270
|
- spec/dbee/query/sorters/base_spec.rb
|
219
271
|
- spec/dbee/query/sorters/descending_spec.rb
|
220
272
|
- spec/dbee/query_spec.rb
|
273
|
+
- spec/dbee/schema_creator_spec.rb
|
274
|
+
- spec/dbee/schema_from_tree_based_model_spec.rb
|
275
|
+
- spec/dbee/schema_spec.rb
|
221
276
|
- spec/dbee_spec.rb
|
222
277
|
- spec/fixtures/models.rb
|
223
278
|
- spec/fixtures/models.yaml
|
@@ -225,8 +280,13 @@ files:
|
|
225
280
|
homepage: https://github.com/bluemarblepayroll/dbee
|
226
281
|
licenses:
|
227
282
|
- MIT
|
228
|
-
metadata:
|
229
|
-
|
283
|
+
metadata:
|
284
|
+
bug_tracker_uri: https://github.com/bluemarblepayroll/dbee/issues
|
285
|
+
changelog_uri: https://github.com/bluemarblepayroll/dbee/blob/master/CHANGELOG.md
|
286
|
+
documentation_uri: https://www.rubydoc.info/gems/dbee
|
287
|
+
homepage_uri: https://github.com/bluemarblepayroll/dbee
|
288
|
+
source_code_uri: https://github.com/bluemarblepayroll/dbee
|
289
|
+
post_install_message:
|
230
290
|
rdoc_options: []
|
231
291
|
require_paths:
|
232
292
|
- lib
|
@@ -234,7 +294,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
234
294
|
requirements:
|
235
295
|
- - ">="
|
236
296
|
- !ruby/object:Gem::Version
|
237
|
-
version: 2.
|
297
|
+
version: '2.5'
|
238
298
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
239
299
|
requirements:
|
240
300
|
- - ">="
|
@@ -242,11 +302,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
242
302
|
version: '0'
|
243
303
|
requirements: []
|
244
304
|
rubygems_version: 3.0.3
|
245
|
-
signing_key:
|
305
|
+
signing_key:
|
246
306
|
specification_version: 4
|
247
307
|
summary: Adhoc Reporting SQL Generator
|
248
308
|
test_files:
|
249
309
|
- spec/dbee/base_spec.rb
|
310
|
+
- spec/dbee/constant_resolver_spec.rb
|
311
|
+
- spec/dbee/dsl_schema_builder_spec.rb
|
250
312
|
- spec/dbee/key_chain_spec.rb
|
251
313
|
- spec/dbee/key_path_spec.rb
|
252
314
|
- spec/dbee/model/constraints/base_spec.rb
|
@@ -262,6 +324,9 @@ test_files:
|
|
262
324
|
- spec/dbee/query/sorters/base_spec.rb
|
263
325
|
- spec/dbee/query/sorters/descending_spec.rb
|
264
326
|
- spec/dbee/query_spec.rb
|
327
|
+
- spec/dbee/schema_creator_spec.rb
|
328
|
+
- spec/dbee/schema_from_tree_based_model_spec.rb
|
329
|
+
- spec/dbee/schema_spec.rb
|
265
330
|
- spec/dbee_spec.rb
|
266
331
|
- spec/fixtures/models.rb
|
267
332
|
- spec/fixtures/models.yaml
|