foobara 0.5.10 → 0.6.1

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.
Files changed (324) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/CHANGELOG.md +17 -0
  4. data/lib/foobara/all.rb +4 -2
  5. data/projects/command/src/command_pattern_implementation/concerns/command_data.rb +3 -3
  6. data/projects/command/src/command_pattern_implementation/concerns/domain_mappers.rb +2 -2
  7. data/projects/command/src/command_pattern_implementation/concerns/errors.rb +27 -27
  8. data/projects/command/src/command_pattern_implementation/concerns/errors_type.rb +7 -11
  9. data/projects/command/src/command_pattern_implementation/concerns/inputs.rb +4 -24
  10. data/projects/command/src/command_pattern_implementation/concerns/inputs_type.rb +9 -14
  11. data/projects/command/src/command_pattern_implementation/concerns/reflection.rb +7 -20
  12. data/projects/command/src/command_pattern_implementation/concerns/runtime.rb +3 -48
  13. data/projects/command/src/command_pattern_implementation/concerns/subcommands.rb +5 -5
  14. data/projects/command/src/command_pattern_implementation.rb +0 -1
  15. data/projects/command_connectors/lib/foobara/command_connectors.rb +1 -1
  16. data/projects/command_connectors/src/command_connector/concerns/desugarizers.rb +5 -5
  17. data/projects/command_connectors/src/command_connector/concerns/reflection.rb +4 -4
  18. data/projects/command_connectors/src/command_connector/request.rb +26 -10
  19. data/projects/command_connectors/src/command_connector/response.rb +2 -0
  20. data/projects/command_connectors/src/command_connector.rb +62 -58
  21. data/projects/command_connectors/src/command_registry/exposed_command.rb +7 -2
  22. data/projects/command_connectors/src/command_registry.rb +15 -15
  23. data/projects/command_connectors/src/desugarizer.rb +2 -2
  24. data/projects/command_connectors/src/desugarizers/attributes.rb +8 -8
  25. data/projects/command_connectors/src/desugarizers/auth.rb +1 -1
  26. data/projects/command_connectors/src/desugarizers/set_inputs.rb +3 -3
  27. data/projects/command_connectors/src/desugarizers/symbols_to_true.rb +2 -2
  28. data/projects/command_connectors/src/request_mutator.rb +6 -6
  29. data/projects/command_connectors/src/response_mutator.rb +6 -6
  30. data/projects/command_connectors/src/transformed_command.rb +39 -36
  31. data/projects/command_connectors/src/transformers/auth_errors_transformer.rb +2 -2
  32. data/projects/command_connectors/src/transformers/entity_to_primary_key_inputs_transformer.rb +2 -2
  33. data/projects/command_connectors/src/transformers/load_delegated_attributes_entities_pre_commit_transformer.rb +1 -1
  34. data/projects/domain_mapper/src/domain_mapper.rb +4 -4
  35. data/projects/domain_mapper/src/domain_mapper_lookups.rb +3 -3
  36. data/projects/entities/projects/detached_entity/lib/foobara/detached_entity.rb +1 -1
  37. data/projects/entities/projects/detached_entity/src/concerns/associations.rb +18 -18
  38. data/projects/entities/projects/detached_entity/src/concerns/initialization.rb +2 -2
  39. data/projects/entities/projects/detached_entity/src/concerns/primary_key.rb +4 -4
  40. data/projects/entities/projects/detached_entity/src/concerns/types.rb +2 -2
  41. data/projects/entities/projects/detached_entity/src/detached_entity_type.rb +4 -4
  42. data/projects/entities/projects/detached_entity/src/extensions/builtin_types/detached_entity/casters/primary_key.rb +1 -1
  43. data/projects/entities/projects/detached_entity/src/extensions/builtin_types/detached_entity/validators/model_instance_is_valid.rb +2 -2
  44. data/projects/entities/projects/detached_entity/src/extensions/type_declarations/handlers/registered_type_declaration/validate_primary_key_present.rb +30 -0
  45. data/projects/entities/projects/detached_entity/src/remove_sensitive_values_transformer_extensions.rb +2 -2
  46. data/projects/entities/projects/entity/lib/foobara/entity.rb +1 -1
  47. data/projects/entities/projects/entity/src/concerns/attributes.rb +6 -6
  48. data/projects/entities/projects/entity/src/concerns/callbacks.rb +1 -1
  49. data/projects/entities/projects/entity/src/concerns/initialization.rb +8 -8
  50. data/projects/entities/projects/entity/src/concerns/mutations.rb +4 -4
  51. data/projects/entities/projects/entity/src/concerns/persistence.rb +3 -3
  52. data/projects/entities/projects/entity/src/concerns/queries.rb +7 -7
  53. data/projects/entities/projects/entity/src/extensions/domain/domain_module_extension.rb +4 -4
  54. data/projects/entities/projects/entity/src/new_prepend.rb +2 -2
  55. data/projects/entities/projects/entity/src/not_found_error.rb +8 -8
  56. data/projects/entities/projects/entity/src/sensitive_value_removers/entity.rb +8 -5
  57. data/projects/entities/projects/in_memory_crud_driver_minimal/src/in_memory_minimal.rb +4 -4
  58. data/projects/entities/projects/model_attribute_helpers/lib/foobara/model_attribute_helpers.rb +0 -2
  59. data/projects/entities/projects/model_attribute_helpers/src/attribute_helper_aliases.rb +1 -1
  60. data/projects/entities/projects/model_attribute_helpers/src/attribute_helpers.rb +2 -2
  61. data/projects/entities/projects/nested_transactionable/lib/foobara/nested_transactionable.rb +5 -5
  62. data/projects/entities/projects/persistence/lib/foobara/persistence.rb +1 -1
  63. data/projects/entities/projects/persistence/src/entity_attributes_crud_driver.rb +35 -37
  64. data/projects/entities/projects/persistence/src/entity_base/transaction/concerns/entity_callback_handling.rb +25 -25
  65. data/projects/entities/projects/persistence/src/entity_base/transaction/concerns/state_transitions.rb +8 -8
  66. data/projects/entities/projects/persistence/src/entity_base/transaction/concerns/transaction_tracking.rb +1 -1
  67. data/projects/entities/projects/persistence/src/entity_base/transaction.rb +9 -9
  68. data/projects/entities/projects/persistence/src/entity_base/transaction_table/concerns/record_tracking.rb +4 -4
  69. data/projects/entities/projects/persistence/src/entity_base/transaction_table.rb +52 -52
  70. data/projects/entities/projects/persistence/src/entity_base.rb +7 -7
  71. data/projects/entities/projects/persistence/src/persistence.rb +23 -23
  72. data/projects/entities/projects/weak_object_set/src/weak_object_set.rb +16 -16
  73. data/projects/entities_plumbing/lib/foobara/entities_plumbing.rb +6 -2
  74. data/projects/entities_plumbing/src/extensions/command_pattern_implementation/concerns/entities.rb +21 -5
  75. data/projects/entities_plumbing/src/extensions/command_pattern_implementation/concerns/entity_errors_type.rb +23 -0
  76. data/projects/entities_plumbing/src/extensions/command_pattern_implementation/concerns/entity_inputs.rb +33 -0
  77. data/projects/entities_plumbing/src/extensions/command_pattern_implementation/concerns/entity_reflection.rb +39 -0
  78. data/projects/entities_plumbing/src/extensions/command_pattern_implementation/concerns/runtime.rb +39 -0
  79. data/projects/manifest/src/base_manifest.rb +9 -9
  80. data/projects/manifest/src/model.rb +4 -4
  81. data/projects/manifest/src/type.rb +3 -3
  82. data/projects/manifest/src/type_declaration.rb +4 -4
  83. data/projects/model_plumbing/lib/foobara/model_plumbing.rb +2 -0
  84. data/projects/model_plumbing/src/extensions/command_pattern_implementation/concerns/model_inputs_type.rb +35 -0
  85. data/projects/typesystem/projects/builtin_types/lib/foobara/builtin_types.rb +1 -1
  86. data/projects/typesystem/projects/builtin_types/src/builtin_types.rb +8 -8
  87. data/projects/typesystem/projects/builtin_types/src/duck/supported_validators/one_of/type_declaration_extension/extend_registered_type_declaration/desugarizers/module_desugarizer.rb +2 -2
  88. data/projects/typesystem/projects/builtin_types/src/email/validator_base.rb +4 -4
  89. data/projects/typesystem/projects/callback/src/block/concerns/block_parameter_required.rb +2 -2
  90. data/projects/typesystem/projects/callback/src/block/concerns/keyword_argumentable_block.rb +2 -2
  91. data/projects/typesystem/projects/callback/src/block/concerns/single_argument_block.rb +2 -2
  92. data/projects/typesystem/projects/callback/src/block.rb +4 -4
  93. data/projects/typesystem/projects/callback/src/registry/base.rb +10 -10
  94. data/projects/typesystem/projects/callback/src/registry/conditioned.rb +2 -2
  95. data/projects/typesystem/projects/callback/src/registry/multiple_action.rb +6 -6
  96. data/projects/typesystem/projects/callback/src/runner.rb +4 -4
  97. data/projects/typesystem/projects/callback/src/set.rb +4 -4
  98. data/projects/typesystem/projects/common/src/data_path.rb +14 -14
  99. data/projects/typesystem/projects/common/src/error.rb +11 -11
  100. data/projects/typesystem/projects/common/src/error_collection.rb +14 -14
  101. data/projects/typesystem/projects/common/src/error_key.rb +5 -3
  102. data/projects/typesystem/projects/common/src/outcome.rb +5 -5
  103. data/projects/typesystem/projects/common/src/possible_error.rb +2 -2
  104. data/projects/typesystem/projects/concerns/src/concern.rb +3 -3
  105. data/projects/typesystem/projects/delegate/src/extensions/module.rb +4 -4
  106. data/projects/typesystem/projects/domain/lib/foobara/domain.rb +2 -2
  107. data/projects/typesystem/projects/domain/src/domain.rb +5 -5
  108. data/projects/typesystem/projects/domain/src/domain_module_extension.rb +22 -22
  109. data/projects/typesystem/projects/domain/src/extensions/foobara.rb +6 -6
  110. data/projects/typesystem/projects/domain/src/module_extension.rb +4 -4
  111. data/projects/typesystem/projects/domain/src/organization.rb +6 -6
  112. data/projects/typesystem/projects/enumerated/src/accessors.rb +4 -4
  113. data/projects/typesystem/projects/enumerated/src/values.rb +14 -14
  114. data/projects/{entities → typesystem}/projects/model/lib/foobara/model.rb +1 -1
  115. data/projects/{entities → typesystem}/projects/model/src/concerns/classes.rb +4 -4
  116. data/projects/{entities → typesystem}/projects/model/src/concerns/types.rb +5 -5
  117. data/projects/{entities → typesystem}/projects/model/src/extensions/builtin_types/model/casters/hash.rb +1 -1
  118. data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/attributes_handler_desugarizer.rb +2 -2
  119. data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/model_class_desugarizer.rb +6 -6
  120. data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/to_type_transformer.rb +4 -4
  121. data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration.rb +2 -2
  122. data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/registered_type_declaration/model_class_desugarizer.rb +6 -10
  123. data/projects/{entities → typesystem}/projects/model/src/model.rb +13 -13
  124. data/projects/{entities → typesystem}/projects/model/src/sensitive_value_removers/model.rb +1 -1
  125. data/projects/typesystem/projects/namespace/src/ambiguous_registry.rb +5 -5
  126. data/projects/typesystem/projects/namespace/src/base_registry.rb +8 -8
  127. data/projects/typesystem/projects/namespace/src/is_namespace.rb +19 -19
  128. data/projects/typesystem/projects/namespace/src/namespace/lookup_mode.rb +2 -2
  129. data/projects/typesystem/projects/namespace/src/namespace.rb +5 -5
  130. data/projects/typesystem/projects/namespace/src/namespace_helpers.rb +4 -4
  131. data/projects/typesystem/projects/namespace/src/prefixless_registry.rb +3 -3
  132. data/projects/typesystem/projects/namespace/src/scoped.rb +7 -7
  133. data/projects/typesystem/projects/project/src/foobara.rb +13 -7
  134. data/projects/typesystem/projects/project/src/project.rb +1 -1
  135. data/projects/typesystem/projects/state_machine/src/callbacks.rb +14 -14
  136. data/projects/typesystem/projects/state_machine/src/state_machine.rb +2 -2
  137. data/projects/typesystem/projects/state_machine/src/sugar.rb +3 -3
  138. data/projects/typesystem/projects/type_declarations/lib/foobara/type_declarations.rb +1 -1
  139. data/projects/typesystem/projects/type_declarations/src/attributes.rb +2 -2
  140. data/projects/typesystem/projects/type_declarations/src/attributes_transformers/from_yaml.rb +2 -2
  141. data/projects/typesystem/projects/type_declarations/src/attributes_transformers/only.rb +2 -2
  142. data/projects/typesystem/projects/type_declarations/src/attributes_transformers/reject.rb +2 -2
  143. data/projects/typesystem/projects/type_declarations/src/attributes_transformers/set.rb +4 -4
  144. data/projects/typesystem/projects/type_declarations/src/desugarizer.rb +2 -2
  145. data/projects/typesystem/projects/type_declarations/src/dsl/attributes.rb +9 -9
  146. data/projects/typesystem/projects/type_declarations/src/error_extension.rb +6 -6
  147. data/projects/typesystem/projects/type_declarations/src/handlers/extend_array_type_declaration/array_desugarizer.rb +3 -3
  148. data/projects/typesystem/projects/type_declarations/src/handlers/extend_array_type_declaration/element_type_declaration_desugarizer.rb +2 -2
  149. data/projects/typesystem/projects/type_declarations/src/handlers/extend_array_type_declaration/type_set_to_array_desugarizer.rb +2 -2
  150. data/projects/typesystem/projects/type_declarations/src/handlers/extend_attributes_type_declaration/element_type_declarations_desugarizer.rb +2 -2
  151. data/projects/typesystem/projects/type_declarations/src/handlers/extend_registered_type_declaration/to_type_transformer.rb +2 -2
  152. data/projects/typesystem/projects/type_declarations/src/handlers/extend_registered_type_declaration.rb +2 -2
  153. data/projects/typesystem/projects/type_declarations/src/handlers/extend_tuple_type_declaration/array_desugarizer.rb +2 -2
  154. data/projects/typesystem/projects/type_declarations/src/handlers/registered_type_declaration.rb +4 -3
  155. data/projects/typesystem/projects/type_declarations/src/remove_sensitive_values_transformer.rb +3 -3
  156. data/projects/typesystem/projects/type_declarations/src/type_builder.rb +5 -5
  157. data/projects/typesystem/projects/type_declarations/src/type_declaration.rb +7 -1
  158. data/projects/typesystem/projects/type_declarations/src/type_declaration_handler.rb +13 -13
  159. data/projects/typesystem/projects/type_declarations/src/type_declaration_handler_registry.rb +2 -2
  160. data/projects/typesystem/projects/type_declarations/src/type_declaration_validator.rb +2 -2
  161. data/projects/typesystem/projects/type_declarations/src/type_declarations.rb +2 -2
  162. data/projects/typesystem/projects/type_declarations/src/with_registries.rb +2 -2
  163. data/projects/typesystem/projects/types/src/extensions/error.rb +5 -5
  164. data/projects/typesystem/projects/types/src/type/concerns/reflection.rb +22 -22
  165. data/projects/typesystem/projects/types/src/type/concerns/supported_processor_registration.rb +4 -4
  166. data/projects/typesystem/projects/types/src/type.rb +25 -25
  167. data/projects/typesystem/projects/value/src/caster.rb +11 -11
  168. data/projects/typesystem/projects/value/src/data_error.rb +1 -1
  169. data/projects/typesystem/projects/value/src/mutator.rb +3 -3
  170. data/projects/typesystem/projects/value/src/processor/casting.rb +6 -6
  171. data/projects/typesystem/projects/value/src/processor/pipeline.rb +2 -2
  172. data/projects/typesystem/projects/value/src/processor/runner.rb +1 -1
  173. data/projects/typesystem/projects/value/src/processor/selection.rb +3 -3
  174. data/projects/typesystem/projects/value/src/processor.rb +23 -23
  175. data/projects/typesystem/projects/value/src/transformer.rb +5 -5
  176. data/projects/typesystem/projects/value/src/validator.rb +3 -3
  177. data/version.rb +2 -2
  178. metadata +44 -160
  179. data/projects/command_connectors/Guardfile +0 -6
  180. data/projects/command_connectors/spec/allowed_rules_spec.rb +0 -77
  181. data/projects/command_connectors/spec/ambiguous_lookups_spec.rb +0 -143
  182. data/projects/command_connectors/spec/auth_mappers_spec.rb +0 -201
  183. data/projects/command_connectors/spec/command_connector_spec.rb +0 -2460
  184. data/projects/command_connectors/spec/command_registry_spec.rb +0 -9
  185. data/projects/command_connectors/spec/commands/describe_spec.rb +0 -83
  186. data/projects/command_connectors/spec/commands/ping_spec.rb +0 -14
  187. data/projects/command_connectors/spec/commands/query_git_commit_info_spec.rb +0 -55
  188. data/projects/command_connectors/spec/fixtures/command_connectors/manifest_with_errors_with_missing_command_parents.yaml +0 -1662
  189. data/projects/command_connectors/spec/not_found_error_spec.rb +0 -17
  190. data/projects/command_connectors/spec/pre_commit_transformers/load_atoms_pre_commit_transformer_spec.rb +0 -108
  191. data/projects/command_connectors/spec/request_spec.rb +0 -118
  192. data/projects/command_connectors/spec/serializer_spec.rb +0 -9
  193. data/projects/command_connectors/spec/serializers/aggregate_serializer_spec.rb +0 -45
  194. data/projects/command_connectors/spec/serializers/atomic_serializer_spec.rb +0 -68
  195. data/projects/command_connectors/spec/serializers/entities_to_primary_keys_serializer_spec.rb +0 -36
  196. data/projects/command_connectors/spec/serializers/json_serializer_spec.rb +0 -22
  197. data/projects/command_connectors/spec/serializers/noop_serializer_spec.rb +0 -22
  198. data/projects/command_connectors/spec/serializers/yaml_serializer_spec.rb +0 -22
  199. data/projects/command_connectors/spec/spec_helper.rb +0 -56
  200. data/projects/command_connectors/spec/support/rubyprof.rb +0 -32
  201. data/projects/command_connectors/spec/support/term_trap.rb +0 -6
  202. data/projects/command_connectors/spec/transformers/entity_to_primary_key_inputs_transformer_spec.rb +0 -119
  203. data/projects/entities/Guardfile +0 -6
  204. data/projects/entities/spec/builtin_types/detached_entity_spec.rb +0 -300
  205. data/projects/entities/spec/builtin_types/entity_spec.rb +0 -501
  206. data/projects/entities/spec/builtin_types/model_spec.rb +0 -420
  207. data/projects/entities/spec/detached_entity/casting_spec.rb +0 -31
  208. data/projects/entities/spec/entity/concerns/associations_spec.rb +0 -73
  209. data/projects/entities/spec/entity/concerns/attribute_helpers_spec.rb +0 -220
  210. data/projects/entities/spec/entity/concerns/callbacks_spec.rb +0 -61
  211. data/projects/entities/spec/entity/concerns/initialization_spec.rb +0 -213
  212. data/projects/entities/spec/entity/concerns/mutations_spec.rb +0 -38
  213. data/projects/entities/spec/entity/concerns/queries_spec.rb +0 -184
  214. data/projects/entities/spec/entity/entity_spec.rb +0 -240
  215. data/projects/entities/spec/entity/extending_existing_spec.rb +0 -137
  216. data/projects/entities/spec/entity/extensions/domain_module_extension_spec.rb +0 -42
  217. data/projects/entities/spec/entity/from_type_declaration_spec.rb +0 -34
  218. data/projects/entities/spec/entity/that_owns_spec.rb +0 -243
  219. data/projects/entities/spec/entity/weak_object_set_spec.rb +0 -91
  220. data/projects/entities/spec/model/model_spec.rb +0 -135
  221. data/projects/entities/spec/model/types_spec.rb +0 -397
  222. data/projects/entities/spec/nested_transactionable/nested_transactionable_spec.rb +0 -67
  223. data/projects/entities/spec/persistence/entity_attributes_crud_drivers/in_memory_minimal_spec.rb +0 -13
  224. data/projects/entities/spec/persistence/entity_base/transaction_spec.rb +0 -509
  225. data/projects/entities/spec/persistence/entity_base/transaction_table_spec.rb +0 -58
  226. data/projects/entities/spec/persistence/persistence_spec.rb +0 -148
  227. data/projects/entities/spec/spec_helper.rb +0 -54
  228. data/projects/entities/spec/support/rubyprof.rb +0 -32
  229. data/projects/entities/spec/support/term_trap.rb +0 -6
  230. data/projects/entities/spec/type_declarations/sensitive_type_removers_spec.rb +0 -90
  231. data/projects/entities_plumbing/Guardfile +0 -6
  232. data/projects/entities_plumbing/spec/auth_mappers_spec.rb +0 -159
  233. data/projects/entities_plumbing/spec/spec_helper.rb +0 -55
  234. data/projects/entities_plumbing/spec/support/rubyprof.rb +0 -32
  235. data/projects/entities_plumbing/spec/support/term_trap.rb +0 -6
  236. data/projects/entities_plumbing/spec/transaction_spec.rb +0 -534
  237. data/projects/manifest/Guardfile +0 -6
  238. data/projects/manifest/spec/associations_spec.rb +0 -67
  239. data/projects/manifest/spec/manifest_spec.rb +0 -382
  240. data/projects/manifest/spec/model_spec.rb +0 -126
  241. data/projects/manifest/spec/spec_helper.rb +0 -54
  242. data/projects/manifest/spec/type_declaration_spec.rb +0 -39
  243. data/projects/manifest/spec/type_spec.rb +0 -30
  244. data/projects/typesystem/spec/builtin_types/allow_nil_spec.rb +0 -138
  245. data/projects/typesystem/spec/builtin_types/array_spec.rb +0 -140
  246. data/projects/typesystem/spec/builtin_types/associative_array_spec.rb +0 -228
  247. data/projects/typesystem/spec/builtin_types/attributes_spec.rb +0 -490
  248. data/projects/typesystem/spec/builtin_types/big_decimal_spec.rb +0 -42
  249. data/projects/typesystem/spec/builtin_types/boolean_spec.rb +0 -43
  250. data/projects/typesystem/spec/builtin_types/class_type_desugarizer_spec.rb +0 -17
  251. data/projects/typesystem/spec/builtin_types/custom_type_spec.rb +0 -430
  252. data/projects/typesystem/spec/builtin_types/date_spec.rb +0 -37
  253. data/projects/typesystem/spec/builtin_types/datetime_spec.rb +0 -49
  254. data/projects/typesystem/spec/builtin_types/email_spec.rb +0 -44
  255. data/projects/typesystem/spec/builtin_types/float_spec.rb +0 -59
  256. data/projects/typesystem/spec/builtin_types/instance_of_spec.rb +0 -75
  257. data/projects/typesystem/spec/builtin_types/one_of_spec.rb +0 -73
  258. data/projects/typesystem/spec/builtin_types/string_spec.rb +0 -117
  259. data/projects/typesystem/spec/builtin_types/symbol_spec.rb +0 -24
  260. data/projects/typesystem/spec/builtin_types/tuple_spec.rb +0 -125
  261. data/projects/typesystem/spec/callback/callback_spec.rb +0 -155
  262. data/projects/typesystem/spec/callback/registry/conditioned_spec.rb +0 -152
  263. data/projects/typesystem/spec/callback/registry/multiple_action_spec.rb +0 -144
  264. data/projects/typesystem/spec/callback/registry/single_action_spec.rb +0 -114
  265. data/projects/typesystem/spec/common/data_path_spec.rb +0 -268
  266. data/projects/typesystem/spec/common/error_collection_spec.rb +0 -77
  267. data/projects/typesystem/spec/common/error_key_spec.rb +0 -56
  268. data/projects/typesystem/spec/common/outcome_spec.rb +0 -65
  269. data/projects/typesystem/spec/common/possible_error_spec.rb +0 -17
  270. data/projects/typesystem/spec/concerns/concern_spec.rb +0 -122
  271. data/projects/typesystem/spec/enumerated/accessors_spec.rb +0 -182
  272. data/projects/typesystem/spec/enumerated/enumerated_spec.rb +0 -32
  273. data/projects/typesystem/spec/enumerated/values_spec.rb +0 -67
  274. data/projects/typesystem/spec/foobara/foobara_spec.rb +0 -45
  275. data/projects/typesystem/spec/namespace/ambiguous_registry_spec.rb +0 -70
  276. data/projects/typesystem/spec/namespace/foobara_simulation_spec.rb +0 -254
  277. data/projects/typesystem/spec/namespace/is_namespace_spec.rb +0 -103
  278. data/projects/typesystem/spec/namespace/namespace_helpers_spec.rb +0 -67
  279. data/projects/typesystem/spec/namespace/namespace_spec.rb +0 -335
  280. data/projects/typesystem/spec/namespace/prefixless_registry_spec.rb +0 -30
  281. data/projects/typesystem/spec/namespace/unambiguous_registry_spec.rb +0 -50
  282. data/projects/typesystem/spec/spec_helper.rb +0 -52
  283. data/projects/typesystem/spec/state_machine/callbacks_spec.rb +0 -144
  284. data/projects/typesystem/spec/state_machine/state_machine_spec.rb +0 -224
  285. data/projects/typesystem/spec/state_machine/target_attribute_spec.rb +0 -46
  286. data/projects/typesystem/spec/support/rubyprof.rb +0 -32
  287. data/projects/typesystem/spec/support/term_trap.rb +0 -6
  288. data/projects/typesystem/spec/type_declarations/attributes_spec.rb +0 -14
  289. data/projects/typesystem/spec/type_declarations/attributes_transformer_spec.rb +0 -95
  290. data/projects/typesystem/spec/type_declarations/dsl/attributes_spec.rb +0 -107
  291. data/projects/typesystem/spec/type_declarations/handlers/extend_registered_type_declaration_spec.rb +0 -13
  292. data/projects/typesystem/spec/type_declarations/sensitive_type_removers_spec.rb +0 -210
  293. data/projects/typesystem/spec/type_declarations/type_builder_spec.rb +0 -47
  294. data/projects/typesystem/spec/type_declarations/type_declaration_spec.rb +0 -252
  295. data/projects/typesystem/spec/type_declarations/type_declarations_spec.rb +0 -11
  296. data/projects/typesystem/spec/type_declarations/typed_transformer_spec.rb +0 -65
  297. data/projects/typesystem/spec/types/sensitive_spec.rb +0 -36
  298. data/projects/typesystem/spec/types/type_spec.rb +0 -102
  299. data/projects/typesystem/spec/value/caster_spec.rb +0 -23
  300. data/projects/typesystem/spec/value/processor/runner_spec.rb +0 -34
  301. data/projects/typesystem/spec/value/processor/selection_spec.rb +0 -71
  302. data/projects/typesystem/spec/value/processor_spec.rb +0 -76
  303. data/projects/typesystem/spec/value/transformer_spec.rb +0 -27
  304. /data/projects/{command/src → entities_plumbing/src/extensions}/command_pattern_implementation/concerns/transactions.rb +0 -0
  305. /data/projects/{entities → typesystem}/projects/model/src/concerns/aliases.rb +0 -0
  306. /data/projects/{entities → typesystem}/projects/model/src/concerns/reflection.rb +0 -0
  307. /data/projects/{entities → typesystem}/projects/model/src/extensions/builtin_types/model/supported_transformers/mutable.rb +0 -0
  308. /data/projects/{entities → typesystem}/projects/model/src/extensions/builtin_types/model/validators/model_instance_is_valid.rb +0 -0
  309. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/array_with_symbolic_elements.rb +0 -0
  310. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/delegates_desugarizer.rb +0 -0
  311. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/delegates_validator.rb +0 -0
  312. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/hash_desugarizer.rb +0 -0
  313. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/move_private_from_element_types_to_root.rb +0 -0
  314. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/symbolize_private.rb +0 -0
  315. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/valid_attribute_names.rb +0 -0
  316. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration.rb +0 -0
  317. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/hash_desugarizer.rb +0 -0
  318. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/model_class_type_desugarizer.rb +0 -0
  319. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/mutable_validator.rb +0 -0
  320. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/normalize_mutable_attributes_desugarizer.rb +0 -0
  321. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/to_type_transformer.rb +0 -0
  322. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/lazy_element_types/model.rb +0 -0
  323. /data/projects/{entities → typesystem}/projects/model/src/sensitive_type_removers/extended_model.rb +0 -0
  324. /data/projects/{entities → typesystem}/projects/model/src/sensitive_type_removers/model.rb +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 23083c50349b64586fcc01d57460032c08ab51eaf90af20591a49dfa16c477f2
4
- data.tar.gz: '04495cb4fbf6f6c93bc24da26a7f889792a4b17498a04416b539b107b0aa2158'
3
+ metadata.gz: 658b5aeee49a2c42d53b1c27a1bfc1464a62a3688e66e4c074f47c0932cbccd3
4
+ data.tar.gz: 75e152204e15cf5b6359276533cb0d690c49f729f94bec9bb59f2faac5d99885
5
5
  SHA512:
6
- metadata.gz: 23af9c5f5cd3ac5bdfe282151b13d412377c8ff9b9fa87f2a9093e3bbe6d748d6e40845cdd7ef5062710e8db892c28dcccb6e8c358f087a68e785ef9953d6a7b
7
- data.tar.gz: 3669d063aa1f94ff023464841e9b5cab65fafb82290aeaae170564d13aa3659f6b012fc5ec71471f781e6b236f78e33aa5643d465aa0687f9bfcabfe4df2dfaf
6
+ metadata.gz: baaf7fa9a61c7d3cd588a4b9580ea7e8543ee3651ed38cd64dc58389039b21724b2f78c0b2af1fcc5a6199184c15c5205022cc21a4892388629b1e9602c40cec
7
+ data.tar.gz: 125a737bd0dee217a4f08137f12ed78f8849c7d2392f8948e60d5f7221051f6d149a4f203df4ce3a16a93190ee8e26b3c26136856fd1171c57934f8e15fa5291
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.4.7
1
+ 4.0.6
data/CHANGELOG.md CHANGED
@@ -1,3 +1,20 @@
1
+ # [0.6.1] - 2026-08-08
2
+
3
+ - Reduce gem size by excluding non-production code/artifacts from sub-projects
4
+
5
+ # [0.6.0] - 2026-08-06
6
+
7
+ - Give a way to authenticate if possible without requiring it (:authentication_optional)
8
+ - Convert NotFoundError into a data error
9
+ - Progress on getting closer to decoupling persistence
10
+ - Raise an error if non-attributes-like type is used for inputs
11
+ - Improve error message when using an entity that has no primary key as a type
12
+ - Support concept of a type declaration being claimed but errored
13
+ - Combine some entities cache-busting code
14
+ - Move model project out of entities project and into typesystem
15
+ - Raise with NotImplementedError where applicable instead of StandardError
16
+ - Simplify raise_if_production! interface
17
+
1
18
  # [0.5.10] - 2026-04-17
2
19
 
3
20
  - Add a ignore_unexpected_attributes transformer to builtin attributes type
data/lib/foobara/all.rb CHANGED
@@ -16,14 +16,16 @@ module Foobara
16
16
  require "foobara/builtin_types"
17
17
  require "foobara/domain"
18
18
  require "foobara/command"
19
+ require "foobara/domain_mapper"
20
+ require "foobara/manifest"
21
+
19
22
  # TODO: make it so these are fully decoupled, optional, and not required here
20
23
  require "foobara/model_attribute_helpers"
21
24
  require "foobara/model_plumbing"
25
+
22
26
  require "foobara/entities_plumbing"
23
27
  # Shouldn't this be optional? Maybe use autoload feature somehow?
24
28
  require "foobara/in_memory_crud_driver"
25
- require "foobara/domain_mapper"
26
- require "foobara/manifest"
27
29
 
28
30
  install!
29
31
  end
@@ -9,11 +9,11 @@ module Foobara
9
9
  if args.empty?
10
10
  @description
11
11
  elsif args.size == 1
12
- @description = args.first
12
+ @description = args[0]
13
13
  else
14
- # :nocov:
14
+ # simplecov:disable
15
15
  raise ArgumentError, "wrong number of arguments (#{args.size} for 0 or 1)"
16
- # :nocov:
16
+ # simplecov:enable
17
17
  end
18
18
  end
19
19
 
@@ -63,9 +63,9 @@ module Foobara
63
63
 
64
64
  def run_mapped_subcommand!(subcommand_class, unmapped_inputs = {}, to = nil)
65
65
  unless subcommand_class
66
- # :nocov:
66
+ # simplecov:disable
67
67
  raise ArgumentError, "subcommand_class is required"
68
- # :nocov:
68
+ # simplecov:enable
69
69
  end
70
70
 
71
71
  mapped_something = false
@@ -10,9 +10,9 @@ module Foobara
10
10
  key = key.to_s_type
11
11
 
12
12
  unless error_context_type_map.key?(key)
13
- # :nocov:
13
+ # simplecov:disable
14
14
  raise "No error class was registered for #{key}"
15
- # :nocov:
15
+ # simplecov:enable
16
16
  end
17
17
 
18
18
  error_context_type_map[key].error_class
@@ -23,9 +23,9 @@ module Foobara
23
23
  key = key.to_s_type
24
24
 
25
25
  unless error_context_type_map.key?(key)
26
- # :nocov:
26
+ # simplecov:disable
27
27
  raise "No error class was registered for #{key}"
28
- # :nocov:
28
+ # simplecov:enable
29
29
  end
30
30
 
31
31
  error_context_type_map[key].error_class
@@ -37,9 +37,9 @@ module Foobara
37
37
  end
38
38
 
39
39
  unless error_context_type_map.key?(key)
40
- # :nocov:
40
+ # simplecov:disable
41
41
  raise "No error class was registered for #{key}"
42
- # :nocov:
42
+ # simplecov:enable
43
43
  end
44
44
 
45
45
  error_context_type_map[key].error_class
@@ -66,32 +66,32 @@ module Foobara
66
66
 
67
67
  def add_input_error(*args, **opts)
68
68
  error = if args.size == 1 && opts.empty?
69
- error = args.first
69
+ error = args[0]
70
70
 
71
71
  unless error.is_a?(Value::DataError)
72
- # :nocov:
72
+ # simplecov:disable
73
73
  raise ArgumentError, "expected an DataError or keyword arguments to construct one"
74
- # :nocov:
74
+ # simplecov:enable
75
75
  end
76
76
 
77
77
  error
78
- elsif args.empty? || (args.size == 1 && args.first.is_a?(Hash))
79
- error_args = opts.merge(args.first || {})
78
+ elsif args.empty? || (args.size == 1 && args[0].is_a?(Hash))
79
+ error_args = opts.merge(args[0] || {})
80
80
  symbol = error_args[:symbol]
81
81
  path = error_args[:input] || error_args[:path]
82
82
 
83
83
  error_args = error_args.except(:input)
84
84
 
85
85
  unless symbol
86
- # :nocov:
86
+ # simplecov:disable
87
87
  raise ArgumentError, "missing error symbol"
88
- # :nocov:
88
+ # simplecov:enable
89
89
  end
90
90
 
91
91
  unless path
92
- # :nocov:
92
+ # simplecov:disable
93
93
  raise ArgumentError, "missing input"
94
- # :nocov:
94
+ # simplecov:enable
95
95
  end
96
96
 
97
97
  error_class = self.class.lookup_input_error_class(symbol, path)
@@ -109,10 +109,10 @@ module Foobara
109
109
 
110
110
  error_class.new(path: input, symbol:, context:, message:)
111
111
  else
112
- # :nocov:
112
+ # simplecov:disable
113
113
  raise ArgumentError,
114
114
  "Invalid arguments given. Expected an error or args for an error"
115
- # :nocov:
115
+ # simplecov:enable
116
116
  end
117
117
 
118
118
  add_error(error)
@@ -126,30 +126,30 @@ module Foobara
126
126
 
127
127
  def add_runtime_error(*args, halt: true, **opts)
128
128
  error = if args.size == 1 && opts.empty? && (
129
- args.first.is_a?(::Class) || args.first.is_a?(Foobara::RuntimeError)
129
+ args[0].is_a?(::Class) || args[0].is_a?(Foobara::RuntimeError)
130
130
  )
131
- error = args.first
131
+ error = args[0]
132
132
 
133
133
  if error.is_a?(::Class) && error < Foobara::RuntimeError
134
134
  error = error.new
135
135
  end
136
136
 
137
137
  unless error.is_a?(Foobara::RuntimeError)
138
- # :nocov:
138
+ # simplecov:disable
139
139
  raise ArgumentError,
140
140
  "expected a Foobara::RuntimeError or keyword arguments to construct one"
141
- # :nocov:
141
+ # simplecov:enable
142
142
  end
143
143
 
144
144
  error
145
- elsif args.empty? || (args.size == 1 && args.first.is_a?(Hash))
146
- error_args = opts.merge(args.first || {})
145
+ elsif args.empty? || (args.size == 1 && args[0].is_a?(Hash))
146
+ error_args = opts.merge(args[0] || {})
147
147
  symbol = error_args[:symbol]
148
148
 
149
149
  unless symbol
150
- # :nocov:
150
+ # simplecov:disable
151
151
  raise ArgumentError, "missing error symbol"
152
- # :nocov:
152
+ # simplecov:enable
153
153
  end
154
154
 
155
155
  error_class = self.class.lookup_runtime_error_class(symbol)
@@ -161,9 +161,9 @@ module Foobara
161
161
  error_class = self.class.lookup_runtime_error_class(symbol)
162
162
  error_class.new(symbol:, context:, message:)
163
163
  else
164
- # :nocov:
164
+ # simplecov:disable
165
165
  raise ArgumentError, "Invalid arguments given. Expected an error or args/opts to build error"
166
- # :nocov:
166
+ # simplecov:enable
167
167
  end
168
168
 
169
169
  add_error(error)
@@ -26,22 +26,22 @@ module Foobara
26
26
  def possible_error(*args)
27
27
  possible_error = case args.size
28
28
  when 1
29
- arg = args.first
29
+ arg = args[0]
30
30
 
31
31
  if arg.is_a?(PossibleError)
32
32
  # TODO: test this code path
33
- # :nocov:
33
+ # simplecov:disable
34
34
  arg
35
- # :nocov:
35
+ # simplecov:enable
36
36
  elsif arg.is_a?(::Class) && arg < Foobara::Error
37
37
  PossibleError.new(arg)
38
38
  elsif arg.is_a?(::Symbol)
39
39
  error_class = Foobara::RuntimeError.subclass(mod: self, symbol: arg)
40
40
  PossibleError.new(error_class, symbol: arg)
41
41
  else
42
- # :nocov:
42
+ # simplecov:disable
43
43
  raise ArgumentError, "Expected a PossibleError or an Error but got #{arg}"
44
- # :nocov:
44
+ # simplecov:enable
45
45
  end
46
46
  when 2
47
47
  symbol, subclass_parameters, data = args
@@ -54,9 +54,9 @@ module Foobara
54
54
 
55
55
  PossibleError.new(error_class, symbol:, data:)
56
56
  else
57
- # :nocov:
57
+ # simplecov:disable
58
58
  raise ArgumentError, "Expected an error or a symbol and error context type declaration"
59
- # :nocov:
59
+ # simplecov:enable
60
60
  end
61
61
 
62
62
  register_possible_error_class(possible_error)
@@ -111,10 +111,6 @@ module Foobara
111
111
  map
112
112
  end
113
113
 
114
- inputs_association_paths&.each do |data_path|
115
- possible_input_error(data_path.to_sym, CommandPatternImplementation::NotFoundError)
116
- end
117
-
118
114
  @error_context_type_map
119
115
  end
120
116
 
@@ -6,26 +6,6 @@ module Foobara
6
6
 
7
7
  include Concern
8
8
 
9
- module ClassMethods
10
- def inputs_association_paths
11
- return @inputs_association_paths if defined?(@inputs_association_paths)
12
-
13
- @inputs_association_paths = if inputs_type.nil?
14
- nil
15
- else
16
- keys = Entity.construct_associations(inputs_type).keys
17
-
18
- if keys.empty?
19
- nil
20
- else
21
- keys.map do |key|
22
- DataPath.new(key)
23
- end
24
- end
25
- end
26
- end
27
- end
28
-
29
9
  attr_reader :inputs, :raw_inputs
30
10
 
31
11
  def initialize(inputs = {})
@@ -37,9 +17,9 @@ module Foobara
37
17
  if respond_to_missing_for_inputs?(method_name)
38
18
  inputs[method_name]
39
19
  else
40
- # :nocov:
20
+ # simplecov:disable
41
21
  super
42
- # :nocov:
22
+ # simplecov:enable
43
23
  end
44
24
  end
45
25
 
@@ -66,9 +46,9 @@ module Foobara
66
46
  if error.is_a?(Value::DataError)
67
47
  add_input_error(error)
68
48
  else
69
- # :nocov:
49
+ # simplecov:disable
70
50
  raise UnexpectedInputValidationError, "Unexpected input validation error: #{error}"
71
- # :nocov:
51
+ # simplecov:enable
72
52
  end
73
53
  end
74
54
  end
@@ -1,29 +1,24 @@
1
1
  module Foobara
2
2
  module CommandPatternImplementation
3
+ class BadCommandInputsError < StandardError; end
4
+
3
5
  module Concerns
4
6
  module InputsType
5
7
  include Concern
6
8
 
7
9
  module ClassMethods
8
10
  def inputs(...)
9
- old_inputs_type = inputs_type
10
-
11
- old_inputs_type&.possible_errors&.each do |possible_error|
12
- unregister_possible_error_if_registered(possible_error)
13
- end
14
-
15
- if defined?(@inputs_association_paths)
16
- remove_instance_variable(:@inputs_association_paths)
17
- end
11
+ type = type_for_declaration(...)
18
12
 
19
- if defined?(@entity_class_paths)
20
- remove_instance_variable(:@entity_class_paths)
13
+ unless type.extends?(BuiltinTypes[:attributes])
14
+ raise BadCommandInputsError, "Expected attributes or something unambiguously convertable to attributes " \
15
+ "but got #{type}"
21
16
  end
22
17
 
23
- type = type_for_declaration(...)
18
+ old_inputs_type = inputs_type
24
19
 
25
- if type.extends?(BuiltinTypes[:model]) && !type.extends?(BuiltinTypes[:entity])
26
- type = type.element_types
20
+ old_inputs_type&.possible_errors&.each do |possible_error|
21
+ unregister_possible_error_if_registered(possible_error)
27
22
  end
28
23
 
29
24
  @inputs_type = type
@@ -88,28 +88,15 @@ module Foobara
88
88
  remove_sensitive = TypeDeclarations.foobara_manifest_context_remove_sensitive?
89
89
 
90
90
  if defined?(@types_depended_on) && @types_depended_on.key?(remove_sensitive)
91
+ # simplecov:disable
91
92
  return @types_depended_on[remove_sensitive]
93
+ # simplecov:enable
92
94
  end
93
95
 
94
96
  @types_depended_on ||= {}
95
- @types_depended_on[remove_sensitive] = begin
96
- types = inputs_types_depended_on |
97
- result_types_depended_on |
98
- errors_types_depended_on
99
-
100
- unless depends_on_entities.empty?
101
- entity_types = depends_on_entities.map(&:entity_type)
102
-
103
- if remove_sensitive
104
- entity_types = entity_types.reject(&:sensitive?)
105
- end
106
-
107
- types |= entity_types
108
- types |= entity_types.map(&:types_depended_on).inject(:|)
109
- end
110
-
111
- types
112
- end
97
+ @types_depended_on[remove_sensitive] = inputs_types_depended_on |
98
+ result_types_depended_on |
99
+ errors_types_depended_on
113
100
  end
114
101
 
115
102
  def inputs_types_depended_on
@@ -124,13 +111,13 @@ module Foobara
124
111
  if inputs_type.registered?
125
112
  # TODO: if we ever change from attributes-only inputs type
126
113
  # then this will be handy
127
- # :nocov:
114
+ # simplecov:disable
128
115
  if !remove_sensitive || !inputs_type.sensitive?
129
116
  Set[inputs_type]
130
117
  else
131
118
  Set.new
132
119
  end
133
- # :nocov:
120
+ # simplecov:enable
134
121
  else
135
122
  inputs_type.types_depended_on
136
123
  end
@@ -7,13 +7,6 @@ module Foobara
7
7
  class CannotHaltWithoutAddingErrors < StandardError; end
8
8
  class Halt < StandardError; end
9
9
 
10
- class NotFoundError < Foobara::DataError
11
- context do
12
- entity_class :string, :required
13
- criteria :duck
14
- end
15
- end
16
-
17
10
  module ClassMethods
18
11
  def run(...)
19
12
  new(...).run
@@ -54,10 +47,10 @@ module Foobara
54
47
  return outcome if state_machine.currently_errored?
55
48
 
56
49
  if error_collection.empty?
57
- # :nocov:
50
+ # simplecov:disable
58
51
  raise CannotHaltWithoutAddingErrors, "Cannot halt without adding errors first. " \
59
52
  "Either add errors or use error! transition instead."
60
- # :nocov:
53
+ # simplecov:enable
61
54
  end
62
55
 
63
56
  state_machine.fail!
@@ -93,44 +86,6 @@ module Foobara
93
86
  # noop but for now helpful for carrying out state transition
94
87
  end
95
88
 
96
- def validate_records
97
- self.class.inputs_association_paths&.each do |data_path|
98
- if data_path.last == :"#"
99
- records = data_path.values_at(@inputs)
100
-
101
- records.each.with_index do |record, index|
102
- if record&.persisted? && !record.loaded?
103
- begin
104
- record.class.load(record)
105
- rescue Foobara::Entity::NotFoundError => e
106
- add_input_error(
107
- [*data_path.path[..-2], index],
108
- CommandPatternImplementation::NotFoundError,
109
- criteria: e.criteria,
110
- entity_class: record.class.model_type.scoped_full_name
111
- )
112
- end
113
- end
114
- end
115
- else
116
- record = data_path.value_at(@inputs)
117
-
118
- if record&.persisted? && !record.loaded?
119
- begin
120
- record.class.load(record)
121
- rescue Foobara::Entity::NotFoundError => e
122
- add_input_error(
123
- data_path.to_s,
124
- CommandPatternImplementation::NotFoundError,
125
- criteria: e.criteria,
126
- entity_class: record.class.model_type.scoped_full_name
127
- )
128
- end
129
- end
130
- end
131
- end
132
- end
133
-
134
89
  def validate
135
90
  # can override if desired, default is a no-op
136
91
  end
@@ -152,7 +107,7 @@ module Foobara
152
107
  transition = transition_or_transitions
153
108
 
154
109
  state_machine.perform_transition!(transition) do
155
- result = send(transition)
110
+ result = __send__(transition)
156
111
  halt! if has_errors?
157
112
  end
158
113
  end
@@ -74,17 +74,17 @@ module Foobara
74
74
  end
75
75
 
76
76
  if subcommand_classes.length == 1
77
- subcommand_classes = Util.array(subcommand_classes.first)
77
+ subcommand_classes = Util.array(subcommand_classes[0])
78
78
  end
79
79
 
80
80
  subcommand_classes.each do |subcommand_class|
81
81
  subcommand_name = subcommand_class.scoped_full_name.to_sym
82
82
 
83
83
  if depends_on.include?(subcommand_name)
84
- # :nocov:
84
+ # simplecov:disable
85
85
  raise AlreadyRegisteredSubcommand,
86
86
  "Already registered #{subcommand_class} as a dependency of #{self}"
87
- # :nocov:
87
+ # simplecov:enable
88
88
  end
89
89
 
90
90
  depends_on << subcommand_name
@@ -99,9 +99,9 @@ module Foobara
99
99
  end
100
100
 
101
101
  unless depends_on?(subcommand_class)
102
- # :nocov:
102
+ # simplecov:disable
103
103
  raise SubcommandNotRegistered, "Need to declare #{subcommand_class} on #{self} with .depends_on"
104
- # :nocov:
104
+ # simplecov:enable
105
105
  end
106
106
  end
107
107
 
@@ -29,7 +29,6 @@ module Foobara
29
29
  include CommandPatternImplementation::Concerns::Runtime
30
30
  include CommandPatternImplementation::Concerns::Callbacks
31
31
  include CommandPatternImplementation::Concerns::StateMachine
32
- include CommandPatternImplementation::Concerns::Transactions
33
32
  include CommandPatternImplementation::Concerns::Subcommands
34
33
  include CommandPatternImplementation::Concerns::DomainMappers
35
34
  include CommandPatternImplementation::Concerns::Reflection
@@ -25,7 +25,7 @@ module Foobara
25
25
  end
26
26
 
27
27
  def reset_all
28
- Foobara.raise_if_production!("reset_all")
28
+ Foobara.raise_if_production!
29
29
  remove_instance_variable("@desugarizer") if defined?(@desugarizer)
30
30
  remove_instance_variable("@desugarizers") if defined?(@desugarizers)
31
31
  end
@@ -22,14 +22,14 @@ module Foobara
22
22
  case processors.size
23
23
  when 0
24
24
  # TODO: test this code path by removing all desugarizers in a spec.
25
- # :nocov:
25
+ # simplecov:disable
26
26
  nil
27
- # :nocov:
27
+ # simplecov:enable
28
28
  when 1
29
29
  # TODO: test this code path by removing all desugarizers in a spec.
30
- # :nocov:
31
- processors.first
32
- # :nocov:
30
+ # simplecov:disable
31
+ processors[0]
32
+ # simplecov:enable
33
33
  else
34
34
  Value::Processor::Pipeline.new(processors:)
35
35
  end
@@ -71,11 +71,11 @@ module Foobara
71
71
  end
72
72
  elsif o.is_a?(Types::Type)
73
73
  if o.sensitive?
74
- # :nocov:
74
+ # simplecov:disable
75
75
  raise UnexpectedSensitiveTypeInManifestError,
76
76
  "Unexpected sensitive type in manifest: #{o.scoped_full_path}. " \
77
77
  "Make sure these are not included."
78
- # :nocov:
78
+ # simplecov:enable
79
79
  else
80
80
 
81
81
  mode = Namespace::LookupMode::ABSOLUTE_SINGLE_NAMESPACE
@@ -113,9 +113,9 @@ module Foobara
113
113
  category_symbol = command_registry.foobara_category_symbol_for(object)
114
114
 
115
115
  unless category_symbol
116
- # :nocov:
116
+ # simplecov:disable
117
117
  raise "no category symbol for #{object}"
118
- # :nocov:
118
+ # simplecov:enable
119
119
  end
120
120
 
121
121
  namespace = if object.is_a?(Types::Type)