foobara 0.0.91 → 0.0.93
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 +15 -2
- data/projects/builtin_types/src/email/validator_base.rb +1 -1
- data/projects/command/src/command_pattern_implementation/concerns/reflection.rb +39 -18
- data/projects/command/src/transformed_command.rb +85 -40
- data/projects/command_connectors/src/command_connector/commands/describe.rb +1 -5
- data/projects/command_connectors/src/command_connector.rb +65 -55
- data/projects/command_connectors/src/command_registry/exposed_command.rb +2 -2
- data/projects/command_connectors/src/command_registry/exposed_domain.rb +10 -3
- data/projects/command_connectors/src/command_registry/exposed_organization.rb +2 -2
- data/projects/command_connectors/src/command_registry.rb +9 -0
- data/projects/command_connectors/src/serializers/atomic_serializer.rb +1 -1
- data/projects/command_connectors/src/transformers/load_delegated_attributes_entities_pre_commit_transformer.rb +40 -0
- data/projects/common/src/data_path.rb +16 -0
- data/projects/common/src/error.rb +35 -5
- data/projects/common/src/outcome.rb +11 -5
- data/projects/common/src/possible_error.rb +9 -3
- data/projects/detached_entity/src/concerns/associations.rb +26 -20
- data/projects/detached_entity/src/concerns/reflection.rb +3 -3
- data/projects/detached_entity/src/detached_entity_type.rb +8 -3
- data/projects/detached_entity/src/extensions/builtin_types/detached_entity/validators/{attributes_declaration.rb → model_instance_is_valid.rb} +1 -1
- data/projects/domain/src/domain_module_extension.rb +12 -4
- data/projects/domain/src/extensions/foobara.rb +31 -28
- data/projects/domain/src/is_manifestable.rb +6 -2
- data/projects/domain/src/organization_module_extension.rb +6 -2
- data/projects/entity/src/concerns/queries.rb +29 -31
- data/projects/entity/src/extensions/builtin_types/entity/validators/{attributes_declaration.rb → model_instance_is_valid.rb} +1 -1
- data/projects/model/src/concerns/reflection.rb +8 -2
- data/projects/model/src/concerns/types.rb +121 -23
- data/projects/model/src/extensions/builtin_types/model/supported_transformers/mutable.rb +1 -2
- data/projects/model/src/extensions/builtin_types/model/validators/{attributes_declaration.rb → model_instance_is_valid.rb} +1 -1
- data/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/array_with_symbolic_elements.rb +29 -0
- data/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/delegates_desugarizer.rb +39 -0
- data/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/delegates_validator.rb +44 -0
- data/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/move_private_from_element_types_to_root.rb +48 -0
- data/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/symbolize_private.rb +34 -0
- data/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/to_type_transformer.rb +34 -2
- data/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/valid_attribute_names.rb +54 -0
- data/projects/model/src/model.rb +9 -0
- data/projects/model_attribute_helpers/src/attribute_helpers.rb +25 -4
- data/projects/namespace/src/is_namespace.rb +34 -15
- data/projects/persistence/src/entity_attributes_crud_driver.rb +25 -1
- data/projects/persistence/src/entity_base/transaction_table.rb +28 -3
- data/projects/type_declarations/src/desugarizer.rb +1 -1
- data/projects/type_declarations/src/remove_sensitive_values_transformer.rb +6 -0
- data/projects/type_declarations/src/type_builder.rb +42 -39
- data/projects/type_declarations/src/type_declaration_handler.rb +1 -1
- data/projects/type_declarations/src/type_declaration_handler_registry.rb +1 -1
- data/projects/type_declarations/src/type_declaration_validator.rb +1 -1
- data/projects/type_declarations/src/type_declarations.rb +39 -10
- data/projects/types/src/extensions/error.rb +3 -3
- data/projects/types/src/type/concerns/reflection.rb +79 -4
- data/projects/types/src/type.rb +42 -17
- data/projects/value/src/caster.rb +1 -1
- data/projects/value/src/mutator.rb +1 -1
- data/projects/value/src/processor/casting.rb +1 -1
- data/projects/value/src/processor/pipeline.rb +1 -1
- data/projects/value/src/processor/selection.rb +1 -1
- data/projects/value/src/processor.rb +13 -5
- data/projects/value/src/transformer.rb +1 -1
- data/projects/value/src/validator.rb +1 -1
- metadata +12 -5
data/projects/types/src/type.rb
CHANGED
@@ -327,7 +327,9 @@ module Foobara
|
|
327
327
|
scoped_full_name
|
328
328
|
end
|
329
329
|
|
330
|
-
def reference_or_declaration_data(declaration_data = self.declaration_data
|
330
|
+
def reference_or_declaration_data(declaration_data = self.declaration_data)
|
331
|
+
remove_sensitive = TypeDeclarations.foobara_manifest_context_remove_sensitive?
|
332
|
+
|
331
333
|
if registered?
|
332
334
|
# TODO: we should just use the symbol and nothing else in this context instead of a hash with 1 element.
|
333
335
|
{ type: foobara_manifest_reference.to_sym }
|
@@ -343,18 +345,23 @@ module Foobara
|
|
343
345
|
scoped_full_name
|
344
346
|
end
|
345
347
|
|
346
|
-
def foobara_manifest
|
348
|
+
def foobara_manifest
|
349
|
+
to_include = TypeDeclarations.foobara_manifest_context_to_include
|
350
|
+
remove_sensitive = TypeDeclarations.foobara_manifest_context_remove_sensitive?
|
351
|
+
|
347
352
|
types = []
|
348
353
|
|
349
|
-
types_depended_on
|
354
|
+
types_depended_on.each do |dependent_type|
|
350
355
|
if dependent_type.registered?
|
351
356
|
types << dependent_type.foobara_manifest_reference
|
352
|
-
to_include
|
357
|
+
if to_include
|
358
|
+
to_include << dependent_type
|
359
|
+
end
|
353
360
|
end
|
354
361
|
end
|
355
362
|
|
356
363
|
possible_errors_manifests = possible_errors.map do |possible_error|
|
357
|
-
[possible_error.key.to_s, possible_error.foobara_manifest
|
364
|
+
[possible_error.key.to_s, possible_error.foobara_manifest]
|
358
365
|
end.sort.to_h
|
359
366
|
|
360
367
|
declaration_data = self.declaration_data
|
@@ -381,14 +388,14 @@ module Foobara
|
|
381
388
|
end
|
382
389
|
|
383
390
|
h.merge!(
|
384
|
-
supported_processor_manifest
|
385
|
-
Util.remove_blank(processors: processor_manifest
|
391
|
+
supported_processor_manifest.merge(
|
392
|
+
Util.remove_blank(processors: processor_manifest)
|
386
393
|
)
|
387
394
|
)
|
388
395
|
|
389
396
|
target_classes.sort_by(&:name).each do |target_class|
|
390
397
|
if target_class.respond_to?(:foobara_manifest)
|
391
|
-
h.merge!(target_class.foobara_manifest
|
398
|
+
h.merge!(target_class.foobara_manifest)
|
392
399
|
end
|
393
400
|
end
|
394
401
|
|
@@ -403,14 +410,18 @@ module Foobara
|
|
403
410
|
base_type
|
404
411
|
end
|
405
412
|
|
406
|
-
def supported_processor_manifest
|
413
|
+
def supported_processor_manifest
|
414
|
+
to_include = TypeDeclarations.foobara_manifest_context_to_include
|
415
|
+
|
407
416
|
supported_casters = []
|
408
417
|
supported_transformers = []
|
409
418
|
supported_validators = []
|
410
419
|
supported_processors = []
|
411
420
|
|
412
421
|
all_supported_processor_classes.each do |processor_class|
|
413
|
-
to_include
|
422
|
+
if to_include
|
423
|
+
to_include << processor_class
|
424
|
+
end
|
414
425
|
|
415
426
|
target = if processor_class < Value::Caster
|
416
427
|
supported_casters
|
@@ -433,7 +444,9 @@ module Foobara
|
|
433
444
|
)
|
434
445
|
end
|
435
446
|
|
436
|
-
def processor_manifest
|
447
|
+
def processor_manifest
|
448
|
+
to_include = TypeDeclarations.foobara_manifest_context_to_include
|
449
|
+
|
437
450
|
casters_manifest = []
|
438
451
|
transformers_manifest = []
|
439
452
|
validators_manifest = []
|
@@ -443,33 +456,45 @@ module Foobara
|
|
443
456
|
|
444
457
|
casters.each do |caster|
|
445
458
|
klass = caster.class
|
446
|
-
to_include
|
459
|
+
if to_include
|
460
|
+
to_include << klass
|
461
|
+
end
|
447
462
|
caster_classes_manifest << klass.foobara_manifest_reference
|
448
463
|
|
449
464
|
if caster.scoped_path_set?
|
450
|
-
to_include
|
465
|
+
if to_include
|
466
|
+
to_include << caster
|
467
|
+
end
|
451
468
|
casters_manifest << caster.foobara_manifest_reference
|
452
469
|
end
|
453
470
|
end
|
454
471
|
|
455
472
|
transformers.each do |transformer|
|
456
473
|
klass = transformer.class
|
457
|
-
to_include
|
474
|
+
if to_include
|
475
|
+
to_include << klass
|
476
|
+
end
|
458
477
|
transformer_classes_manifest << klass.foobara_manifest_reference
|
459
478
|
|
460
479
|
if transformer.scoped_path_set?
|
461
|
-
to_include
|
480
|
+
if to_include
|
481
|
+
to_include << transformer
|
482
|
+
end
|
462
483
|
transformers_manifest << transformer.foobara_manifest_reference
|
463
484
|
end
|
464
485
|
end
|
465
486
|
|
466
487
|
validators.each do |validator|
|
467
488
|
klass = validator.class
|
468
|
-
to_include
|
489
|
+
if to_include
|
490
|
+
to_include << klass
|
491
|
+
end
|
469
492
|
validator_classes_manifest << klass.foobara_manifest_reference
|
470
493
|
|
471
494
|
if validator.scoped_path_set?
|
472
|
-
to_include
|
495
|
+
if to_include
|
496
|
+
to_include << validator
|
497
|
+
end
|
473
498
|
validators_manifest << validator.foobara_manifest_reference
|
474
499
|
end
|
475
500
|
end
|
@@ -25,9 +25,13 @@ module Foobara
|
|
25
25
|
true
|
26
26
|
end
|
27
27
|
|
28
|
-
def foobara_manifest
|
28
|
+
def foobara_manifest
|
29
|
+
to_include = TypeDeclarations.foobara_manifest_context_to_include
|
30
|
+
|
29
31
|
errors = error_classes.map do |error_class|
|
30
|
-
to_include
|
32
|
+
if to_include
|
33
|
+
to_include << error_class
|
34
|
+
end
|
31
35
|
error_class.foobara_manifest_reference
|
32
36
|
end
|
33
37
|
|
@@ -317,15 +321,19 @@ module Foobara
|
|
317
321
|
|
318
322
|
# TODO: is this in the wrong place? Should this be an extension?
|
319
323
|
|
320
|
-
def foobara_manifest
|
324
|
+
def foobara_manifest
|
325
|
+
to_include = TypeDeclarations.foobara_manifest_context_to_include
|
326
|
+
|
321
327
|
possible_errors = self.possible_errors.map do |possible_error|
|
322
|
-
[possible_error.key.to_s, possible_error.foobara_manifest
|
328
|
+
[possible_error.key.to_s, possible_error.foobara_manifest]
|
323
329
|
end
|
324
330
|
|
325
331
|
manifest = super.dup
|
326
332
|
|
327
333
|
if scoped_category == :processor
|
328
|
-
to_include
|
334
|
+
if to_include
|
335
|
+
to_include << self.class
|
336
|
+
end
|
329
337
|
manifest[:processor_class] = self.class.foobara_manifest_reference
|
330
338
|
end
|
331
339
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foobara
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.93
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miles Georgi
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-
|
10
|
+
date: 2025-04-06 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: bigdecimal
|
@@ -193,6 +193,7 @@ files:
|
|
193
193
|
- projects/command_connectors/src/serializers/yaml_serializer.rb
|
194
194
|
- projects/command_connectors/src/transformers/auth_errors_transformer.rb
|
195
195
|
- projects/command_connectors/src/transformers/load_aggregates_pre_commit_transformer.rb
|
196
|
+
- projects/command_connectors/src/transformers/load_delegated_attributes_entities_pre_commit_transformer.rb
|
196
197
|
- projects/common/lib/foobara/common.rb
|
197
198
|
- projects/common/src/data_path.rb
|
198
199
|
- projects/common/src/error.rb
|
@@ -217,7 +218,7 @@ files:
|
|
217
218
|
- projects/detached_entity/src/detached_entity_type.rb
|
218
219
|
- projects/detached_entity/src/extensions/builtin_types/detached_entity.rb
|
219
220
|
- projects/detached_entity/src/extensions/builtin_types/detached_entity/casters/hash.rb
|
220
|
-
- projects/detached_entity/src/extensions/builtin_types/detached_entity/validators/
|
221
|
+
- projects/detached_entity/src/extensions/builtin_types/detached_entity/validators/model_instance_is_valid.rb
|
221
222
|
- projects/detached_entity/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration.rb
|
222
223
|
- projects/detached_entity/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration/attributes_handler_desugarizer.rb
|
223
224
|
- projects/detached_entity/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration/hash_desugarizer.rb
|
@@ -256,7 +257,7 @@ files:
|
|
256
257
|
- projects/entity/src/extensions/builtin_types/entity.rb
|
257
258
|
- projects/entity/src/extensions/builtin_types/entity/casters/hash.rb
|
258
259
|
- projects/entity/src/extensions/builtin_types/entity/casters/primary_key.rb
|
259
|
-
- projects/entity/src/extensions/builtin_types/entity/validators/
|
260
|
+
- projects/entity/src/extensions/builtin_types/entity/validators/model_instance_is_valid.rb
|
260
261
|
- projects/entity/src/extensions/type_declarations/handlers/extend_entity_type_declaration.rb
|
261
262
|
- projects/entity/src/extensions/type_declarations/handlers/extend_entity_type_declaration/attributes_handler_desugarizer.rb
|
262
263
|
- projects/entity/src/extensions/type_declarations/handlers/extend_entity_type_declaration/hash_desugarizer.rb
|
@@ -304,12 +305,18 @@ files:
|
|
304
305
|
- projects/model/src/concerns/types.rb
|
305
306
|
- projects/model/src/extensions/builtin_types/model/casters/hash.rb
|
306
307
|
- projects/model/src/extensions/builtin_types/model/supported_transformers/mutable.rb
|
307
|
-
- projects/model/src/extensions/builtin_types/model/validators/
|
308
|
+
- projects/model/src/extensions/builtin_types/model/validators/model_instance_is_valid.rb
|
308
309
|
- projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration.rb
|
310
|
+
- projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/array_with_symbolic_elements.rb
|
309
311
|
- projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/attributes_handler_desugarizer.rb
|
312
|
+
- projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/delegates_desugarizer.rb
|
313
|
+
- projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/delegates_validator.rb
|
310
314
|
- projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/hash_desugarizer.rb
|
311
315
|
- projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/model_class_desugarizer.rb
|
316
|
+
- projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/move_private_from_element_types_to_root.rb
|
317
|
+
- projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/symbolize_private.rb
|
312
318
|
- projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/to_type_transformer.rb
|
319
|
+
- projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/valid_attribute_names.rb
|
313
320
|
- projects/model/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration.rb
|
314
321
|
- projects/model/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/hash_desugarizer.rb
|
315
322
|
- projects/model/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/model_class_type_desugarizer.rb
|