sober_swag 0.19.0 → 0.23.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/benchmark.yml +39 -0
- data/.github/workflows/lint.yml +2 -4
- data/.github/workflows/ruby.yml +1 -1
- data/.gitignore +3 -0
- data/.rubocop.yml +6 -1
- data/.yardopts +7 -0
- data/CHANGELOG.md +18 -0
- data/Gemfile +12 -0
- data/README.md +1 -1
- data/bench/benchmark.rb +34 -0
- data/bench/benchmarks/basic_field_serializer.rb +21 -0
- data/bench/benchmarks/view_selection.rb +47 -0
- data/bin/console +30 -10
- data/docs/reporting.md +190 -0
- data/docs/serializers.md +4 -1
- data/example/Gemfile +2 -2
- data/example/Gemfile.lock +94 -101
- data/example/app/controllers/application_controller.rb +4 -0
- data/example/app/controllers/people_controller.rb +44 -28
- data/example/app/output_objects/identified_output.rb +7 -0
- data/example/app/output_objects/person_output_object.rb +37 -11
- data/example/app/output_objects/post_output_object.rb +0 -4
- data/example/app/output_objects/reporting_post_output.rb +18 -0
- data/example/bin/rspec +29 -0
- data/example/config/environments/production.rb +1 -1
- data/example/spec/requests/people/create_spec.rb +3 -2
- data/example/spec/requests/people/index_spec.rb +1 -1
- data/lib/sober_swag/compiler/path.rb +45 -4
- data/lib/sober_swag/compiler/paths.rb +20 -0
- data/lib/sober_swag/compiler/primitive.rb +17 -0
- data/lib/sober_swag/compiler/type.rb +105 -22
- data/lib/sober_swag/compiler.rb +87 -15
- data/lib/sober_swag/controller/route.rb +147 -28
- data/lib/sober_swag/controller.rb +57 -17
- data/lib/sober_swag/input_object.rb +124 -7
- data/lib/sober_swag/nodes/array.rb +19 -0
- data/lib/sober_swag/nodes/attribute.rb +45 -4
- data/lib/sober_swag/nodes/base.rb +27 -7
- data/lib/sober_swag/nodes/binary.rb +30 -13
- data/lib/sober_swag/nodes/enum.rb +16 -1
- data/lib/sober_swag/nodes/list.rb +20 -0
- data/lib/sober_swag/nodes/nullable_primitive.rb +3 -0
- data/lib/sober_swag/nodes/object.rb +4 -1
- data/lib/sober_swag/nodes/one_of.rb +11 -3
- data/lib/sober_swag/nodes/primitive.rb +34 -2
- data/lib/sober_swag/nodes/sum.rb +8 -0
- data/lib/sober_swag/output_object/definition.rb +57 -1
- data/lib/sober_swag/output_object/field.rb +31 -11
- data/lib/sober_swag/output_object/field_syntax.rb +19 -3
- data/lib/sober_swag/output_object/view.rb +46 -1
- data/lib/sober_swag/output_object.rb +40 -19
- data/lib/sober_swag/parser.rb +7 -1
- data/lib/sober_swag/reporting/compiler.rb +39 -0
- data/lib/sober_swag/reporting/input/base.rb +11 -0
- data/lib/sober_swag/reporting/input/bool.rb +19 -0
- data/lib/sober_swag/reporting/input/converting/bool.rb +24 -0
- data/lib/sober_swag/reporting/input/converting/date.rb +30 -0
- data/lib/sober_swag/reporting/input/converting/date_time.rb +28 -0
- data/lib/sober_swag/reporting/input/converting/decimal.rb +24 -0
- data/lib/sober_swag/reporting/input/converting/integer.rb +19 -0
- data/lib/sober_swag/reporting/input/converting.rb +16 -0
- data/lib/sober_swag/reporting/input/defer.rb +29 -0
- data/lib/sober_swag/reporting/input/described.rb +38 -0
- data/lib/sober_swag/reporting/input/dictionary.rb +37 -0
- data/lib/sober_swag/reporting/input/either.rb +51 -0
- data/lib/sober_swag/reporting/input/enum.rb +44 -0
- data/lib/sober_swag/reporting/input/format.rb +39 -0
- data/lib/sober_swag/reporting/input/in_range.rb +61 -0
- data/lib/sober_swag/reporting/input/interface.rb +113 -0
- data/lib/sober_swag/reporting/input/list.rb +44 -0
- data/lib/sober_swag/reporting/input/mapped.rb +36 -0
- data/lib/sober_swag/reporting/input/merge_objects.rb +72 -0
- data/lib/sober_swag/reporting/input/multiple_of.rb +36 -0
- data/lib/sober_swag/reporting/input/null.rb +34 -0
- data/lib/sober_swag/reporting/input/number.rb +19 -0
- data/lib/sober_swag/reporting/input/object/property.rb +53 -0
- data/lib/sober_swag/reporting/input/object.rb +100 -0
- data/lib/sober_swag/reporting/input/pattern.rb +46 -0
- data/lib/sober_swag/reporting/input/referenced.rb +38 -0
- data/lib/sober_swag/reporting/input/struct.rb +271 -0
- data/lib/sober_swag/reporting/input/text.rb +42 -0
- data/lib/sober_swag/reporting/input.rb +56 -0
- data/lib/sober_swag/reporting/invalid_schema_error.rb +21 -0
- data/lib/sober_swag/reporting/output/base.rb +25 -0
- data/lib/sober_swag/reporting/output/bool.rb +25 -0
- data/lib/sober_swag/reporting/output/defer.rb +69 -0
- data/lib/sober_swag/reporting/output/described.rb +42 -0
- data/lib/sober_swag/reporting/output/dictionary.rb +46 -0
- data/lib/sober_swag/reporting/output/enum.rb +47 -0
- data/lib/sober_swag/reporting/output/interface.rb +89 -0
- data/lib/sober_swag/reporting/output/list.rb +54 -0
- data/lib/sober_swag/reporting/output/merge_objects.rb +97 -0
- data/lib/sober_swag/reporting/output/null.rb +25 -0
- data/lib/sober_swag/reporting/output/number.rb +25 -0
- data/lib/sober_swag/reporting/output/object/property.rb +45 -0
- data/lib/sober_swag/reporting/output/object.rb +54 -0
- data/lib/sober_swag/reporting/output/partitioned.rb +77 -0
- data/lib/sober_swag/reporting/output/pattern.rb +50 -0
- data/lib/sober_swag/reporting/output/referenced.rb +42 -0
- data/lib/sober_swag/reporting/output/struct.rb +262 -0
- data/lib/sober_swag/reporting/output/text.rb +25 -0
- data/lib/sober_swag/reporting/output/via_map.rb +67 -0
- data/lib/sober_swag/reporting/output/viewed.rb +72 -0
- data/lib/sober_swag/reporting/output.rb +55 -0
- data/lib/sober_swag/reporting/report/base.rb +57 -0
- data/lib/sober_swag/reporting/report/either.rb +36 -0
- data/lib/sober_swag/reporting/report/error.rb +15 -0
- data/lib/sober_swag/reporting/report/list.rb +28 -0
- data/lib/sober_swag/reporting/report/merged_object.rb +25 -0
- data/lib/sober_swag/reporting/report/object.rb +29 -0
- data/lib/sober_swag/reporting/report/output.rb +14 -0
- data/lib/sober_swag/reporting/report/value.rb +28 -0
- data/lib/sober_swag/reporting/report.rb +16 -0
- data/lib/sober_swag/reporting.rb +11 -0
- data/lib/sober_swag/serializer/array.rb +27 -3
- data/lib/sober_swag/serializer/base.rb +75 -25
- data/lib/sober_swag/serializer/conditional.rb +33 -1
- data/lib/sober_swag/serializer/field_list.rb +23 -5
- data/lib/sober_swag/serializer/hash.rb +53 -0
- data/lib/sober_swag/serializer/mapped.rb +10 -1
- data/lib/sober_swag/serializer/optional.rb +18 -1
- data/lib/sober_swag/serializer/primitive.rb +3 -0
- data/lib/sober_swag/serializer.rb +1 -0
- data/lib/sober_swag/server.rb +5 -1
- data/lib/sober_swag/type/named.rb +14 -0
- data/lib/sober_swag/types/comma_array.rb +4 -0
- data/lib/sober_swag/version.rb +1 -1
- data/lib/sober_swag.rb +7 -1
- metadata +74 -2
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sober_swag
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anthony Super
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -173,6 +173,7 @@ extra_rdoc_files: []
|
|
173
173
|
files:
|
174
174
|
- ".github/config/rubocop_linter_action.yml"
|
175
175
|
- ".github/dependabot.yml"
|
176
|
+
- ".github/workflows/benchmark.yml"
|
176
177
|
- ".github/workflows/lint.yml"
|
177
178
|
- ".github/workflows/ruby.yml"
|
178
179
|
- ".gitignore"
|
@@ -180,14 +181,19 @@ files:
|
|
180
181
|
- ".rubocop.yml"
|
181
182
|
- ".ruby-version"
|
182
183
|
- ".travis.yml"
|
184
|
+
- ".yardopts"
|
183
185
|
- CHANGELOG.md
|
184
186
|
- Gemfile
|
185
187
|
- LICENSE.txt
|
186
188
|
- README.md
|
187
189
|
- Rakefile
|
190
|
+
- bench/benchmark.rb
|
191
|
+
- bench/benchmarks/basic_field_serializer.rb
|
192
|
+
- bench/benchmarks/view_selection.rb
|
188
193
|
- bin/console
|
189
194
|
- bin/rspec
|
190
195
|
- bin/setup
|
196
|
+
- docs/reporting.md
|
191
197
|
- docs/serializers.md
|
192
198
|
- example/.gitignore
|
193
199
|
- example/.rspec
|
@@ -205,12 +211,15 @@ files:
|
|
205
211
|
- example/app/models/concerns/.keep
|
206
212
|
- example/app/models/person.rb
|
207
213
|
- example/app/models/post.rb
|
214
|
+
- example/app/output_objects/identified_output.rb
|
208
215
|
- example/app/output_objects/person_errors_output_object.rb
|
209
216
|
- example/app/output_objects/person_output_object.rb
|
210
217
|
- example/app/output_objects/post_output_object.rb
|
218
|
+
- example/app/output_objects/reporting_post_output.rb
|
211
219
|
- example/bin/bundle
|
212
220
|
- example/bin/rails
|
213
221
|
- example/bin/rake
|
222
|
+
- example/bin/rspec
|
214
223
|
- example/bin/setup
|
215
224
|
- example/bin/spring
|
216
225
|
- example/config.ru
|
@@ -278,11 +287,74 @@ files:
|
|
278
287
|
- lib/sober_swag/output_object/field_syntax.rb
|
279
288
|
- lib/sober_swag/output_object/view.rb
|
280
289
|
- lib/sober_swag/parser.rb
|
290
|
+
- lib/sober_swag/reporting.rb
|
291
|
+
- lib/sober_swag/reporting/compiler.rb
|
292
|
+
- lib/sober_swag/reporting/input.rb
|
293
|
+
- lib/sober_swag/reporting/input/base.rb
|
294
|
+
- lib/sober_swag/reporting/input/bool.rb
|
295
|
+
- lib/sober_swag/reporting/input/converting.rb
|
296
|
+
- lib/sober_swag/reporting/input/converting/bool.rb
|
297
|
+
- lib/sober_swag/reporting/input/converting/date.rb
|
298
|
+
- lib/sober_swag/reporting/input/converting/date_time.rb
|
299
|
+
- lib/sober_swag/reporting/input/converting/decimal.rb
|
300
|
+
- lib/sober_swag/reporting/input/converting/integer.rb
|
301
|
+
- lib/sober_swag/reporting/input/defer.rb
|
302
|
+
- lib/sober_swag/reporting/input/described.rb
|
303
|
+
- lib/sober_swag/reporting/input/dictionary.rb
|
304
|
+
- lib/sober_swag/reporting/input/either.rb
|
305
|
+
- lib/sober_swag/reporting/input/enum.rb
|
306
|
+
- lib/sober_swag/reporting/input/format.rb
|
307
|
+
- lib/sober_swag/reporting/input/in_range.rb
|
308
|
+
- lib/sober_swag/reporting/input/interface.rb
|
309
|
+
- lib/sober_swag/reporting/input/list.rb
|
310
|
+
- lib/sober_swag/reporting/input/mapped.rb
|
311
|
+
- lib/sober_swag/reporting/input/merge_objects.rb
|
312
|
+
- lib/sober_swag/reporting/input/multiple_of.rb
|
313
|
+
- lib/sober_swag/reporting/input/null.rb
|
314
|
+
- lib/sober_swag/reporting/input/number.rb
|
315
|
+
- lib/sober_swag/reporting/input/object.rb
|
316
|
+
- lib/sober_swag/reporting/input/object/property.rb
|
317
|
+
- lib/sober_swag/reporting/input/pattern.rb
|
318
|
+
- lib/sober_swag/reporting/input/referenced.rb
|
319
|
+
- lib/sober_swag/reporting/input/struct.rb
|
320
|
+
- lib/sober_swag/reporting/input/text.rb
|
321
|
+
- lib/sober_swag/reporting/invalid_schema_error.rb
|
322
|
+
- lib/sober_swag/reporting/output.rb
|
323
|
+
- lib/sober_swag/reporting/output/base.rb
|
324
|
+
- lib/sober_swag/reporting/output/bool.rb
|
325
|
+
- lib/sober_swag/reporting/output/defer.rb
|
326
|
+
- lib/sober_swag/reporting/output/described.rb
|
327
|
+
- lib/sober_swag/reporting/output/dictionary.rb
|
328
|
+
- lib/sober_swag/reporting/output/enum.rb
|
329
|
+
- lib/sober_swag/reporting/output/interface.rb
|
330
|
+
- lib/sober_swag/reporting/output/list.rb
|
331
|
+
- lib/sober_swag/reporting/output/merge_objects.rb
|
332
|
+
- lib/sober_swag/reporting/output/null.rb
|
333
|
+
- lib/sober_swag/reporting/output/number.rb
|
334
|
+
- lib/sober_swag/reporting/output/object.rb
|
335
|
+
- lib/sober_swag/reporting/output/object/property.rb
|
336
|
+
- lib/sober_swag/reporting/output/partitioned.rb
|
337
|
+
- lib/sober_swag/reporting/output/pattern.rb
|
338
|
+
- lib/sober_swag/reporting/output/referenced.rb
|
339
|
+
- lib/sober_swag/reporting/output/struct.rb
|
340
|
+
- lib/sober_swag/reporting/output/text.rb
|
341
|
+
- lib/sober_swag/reporting/output/via_map.rb
|
342
|
+
- lib/sober_swag/reporting/output/viewed.rb
|
343
|
+
- lib/sober_swag/reporting/report.rb
|
344
|
+
- lib/sober_swag/reporting/report/base.rb
|
345
|
+
- lib/sober_swag/reporting/report/either.rb
|
346
|
+
- lib/sober_swag/reporting/report/error.rb
|
347
|
+
- lib/sober_swag/reporting/report/list.rb
|
348
|
+
- lib/sober_swag/reporting/report/merged_object.rb
|
349
|
+
- lib/sober_swag/reporting/report/object.rb
|
350
|
+
- lib/sober_swag/reporting/report/output.rb
|
351
|
+
- lib/sober_swag/reporting/report/value.rb
|
281
352
|
- lib/sober_swag/serializer.rb
|
282
353
|
- lib/sober_swag/serializer/array.rb
|
283
354
|
- lib/sober_swag/serializer/base.rb
|
284
355
|
- lib/sober_swag/serializer/conditional.rb
|
285
356
|
- lib/sober_swag/serializer/field_list.rb
|
357
|
+
- lib/sober_swag/serializer/hash.rb
|
286
358
|
- lib/sober_swag/serializer/mapped.rb
|
287
359
|
- lib/sober_swag/serializer/meta.rb
|
288
360
|
- lib/sober_swag/serializer/optional.rb
|