foobara 0.5.10 → 0.6.2

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 (325) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/CHANGELOG.md +22 -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 +63 -17
  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 +24 -18
  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 +2 -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 +14 -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/lib/foobara/types.rb +0 -2
  164. data/projects/typesystem/projects/types/src/extensions/error.rb +5 -5
  165. data/projects/typesystem/projects/types/src/type/concerns/reflection.rb +22 -22
  166. data/projects/typesystem/projects/types/src/type/concerns/supported_processor_registration.rb +4 -4
  167. data/projects/typesystem/projects/types/src/type.rb +25 -25
  168. data/projects/typesystem/projects/value/src/caster.rb +11 -11
  169. data/projects/typesystem/projects/value/src/data_error.rb +1 -1
  170. data/projects/typesystem/projects/value/src/mutator.rb +3 -3
  171. data/projects/typesystem/projects/value/src/processor/casting.rb +6 -6
  172. data/projects/typesystem/projects/value/src/processor/pipeline.rb +2 -2
  173. data/projects/typesystem/projects/value/src/processor/runner.rb +1 -1
  174. data/projects/typesystem/projects/value/src/processor/selection.rb +3 -3
  175. data/projects/typesystem/projects/value/src/processor.rb +23 -23
  176. data/projects/typesystem/projects/value/src/transformer.rb +5 -5
  177. data/projects/typesystem/projects/value/src/validator.rb +3 -3
  178. data/version.rb +2 -2
  179. metadata +44 -160
  180. data/projects/command_connectors/Guardfile +0 -6
  181. data/projects/command_connectors/spec/allowed_rules_spec.rb +0 -77
  182. data/projects/command_connectors/spec/ambiguous_lookups_spec.rb +0 -143
  183. data/projects/command_connectors/spec/auth_mappers_spec.rb +0 -201
  184. data/projects/command_connectors/spec/command_connector_spec.rb +0 -2460
  185. data/projects/command_connectors/spec/command_registry_spec.rb +0 -9
  186. data/projects/command_connectors/spec/commands/describe_spec.rb +0 -83
  187. data/projects/command_connectors/spec/commands/ping_spec.rb +0 -14
  188. data/projects/command_connectors/spec/commands/query_git_commit_info_spec.rb +0 -55
  189. data/projects/command_connectors/spec/fixtures/command_connectors/manifest_with_errors_with_missing_command_parents.yaml +0 -1662
  190. data/projects/command_connectors/spec/not_found_error_spec.rb +0 -17
  191. data/projects/command_connectors/spec/pre_commit_transformers/load_atoms_pre_commit_transformer_spec.rb +0 -108
  192. data/projects/command_connectors/spec/request_spec.rb +0 -118
  193. data/projects/command_connectors/spec/serializer_spec.rb +0 -9
  194. data/projects/command_connectors/spec/serializers/aggregate_serializer_spec.rb +0 -45
  195. data/projects/command_connectors/spec/serializers/atomic_serializer_spec.rb +0 -68
  196. data/projects/command_connectors/spec/serializers/entities_to_primary_keys_serializer_spec.rb +0 -36
  197. data/projects/command_connectors/spec/serializers/json_serializer_spec.rb +0 -22
  198. data/projects/command_connectors/spec/serializers/noop_serializer_spec.rb +0 -22
  199. data/projects/command_connectors/spec/serializers/yaml_serializer_spec.rb +0 -22
  200. data/projects/command_connectors/spec/spec_helper.rb +0 -56
  201. data/projects/command_connectors/spec/support/rubyprof.rb +0 -32
  202. data/projects/command_connectors/spec/support/term_trap.rb +0 -6
  203. data/projects/command_connectors/spec/transformers/entity_to_primary_key_inputs_transformer_spec.rb +0 -119
  204. data/projects/entities/Guardfile +0 -6
  205. data/projects/entities/spec/builtin_types/detached_entity_spec.rb +0 -300
  206. data/projects/entities/spec/builtin_types/entity_spec.rb +0 -501
  207. data/projects/entities/spec/builtin_types/model_spec.rb +0 -420
  208. data/projects/entities/spec/detached_entity/casting_spec.rb +0 -31
  209. data/projects/entities/spec/entity/concerns/associations_spec.rb +0 -73
  210. data/projects/entities/spec/entity/concerns/attribute_helpers_spec.rb +0 -220
  211. data/projects/entities/spec/entity/concerns/callbacks_spec.rb +0 -61
  212. data/projects/entities/spec/entity/concerns/initialization_spec.rb +0 -213
  213. data/projects/entities/spec/entity/concerns/mutations_spec.rb +0 -38
  214. data/projects/entities/spec/entity/concerns/queries_spec.rb +0 -184
  215. data/projects/entities/spec/entity/entity_spec.rb +0 -240
  216. data/projects/entities/spec/entity/extending_existing_spec.rb +0 -137
  217. data/projects/entities/spec/entity/extensions/domain_module_extension_spec.rb +0 -42
  218. data/projects/entities/spec/entity/from_type_declaration_spec.rb +0 -34
  219. data/projects/entities/spec/entity/that_owns_spec.rb +0 -243
  220. data/projects/entities/spec/entity/weak_object_set_spec.rb +0 -91
  221. data/projects/entities/spec/model/model_spec.rb +0 -135
  222. data/projects/entities/spec/model/types_spec.rb +0 -397
  223. data/projects/entities/spec/nested_transactionable/nested_transactionable_spec.rb +0 -67
  224. data/projects/entities/spec/persistence/entity_attributes_crud_drivers/in_memory_minimal_spec.rb +0 -13
  225. data/projects/entities/spec/persistence/entity_base/transaction_spec.rb +0 -509
  226. data/projects/entities/spec/persistence/entity_base/transaction_table_spec.rb +0 -58
  227. data/projects/entities/spec/persistence/persistence_spec.rb +0 -148
  228. data/projects/entities/spec/spec_helper.rb +0 -54
  229. data/projects/entities/spec/support/rubyprof.rb +0 -32
  230. data/projects/entities/spec/support/term_trap.rb +0 -6
  231. data/projects/entities/spec/type_declarations/sensitive_type_removers_spec.rb +0 -90
  232. data/projects/entities_plumbing/Guardfile +0 -6
  233. data/projects/entities_plumbing/spec/auth_mappers_spec.rb +0 -159
  234. data/projects/entities_plumbing/spec/spec_helper.rb +0 -55
  235. data/projects/entities_plumbing/spec/support/rubyprof.rb +0 -32
  236. data/projects/entities_plumbing/spec/support/term_trap.rb +0 -6
  237. data/projects/entities_plumbing/spec/transaction_spec.rb +0 -534
  238. data/projects/manifest/Guardfile +0 -6
  239. data/projects/manifest/spec/associations_spec.rb +0 -67
  240. data/projects/manifest/spec/manifest_spec.rb +0 -382
  241. data/projects/manifest/spec/model_spec.rb +0 -126
  242. data/projects/manifest/spec/spec_helper.rb +0 -54
  243. data/projects/manifest/spec/type_declaration_spec.rb +0 -39
  244. data/projects/manifest/spec/type_spec.rb +0 -30
  245. data/projects/typesystem/spec/builtin_types/allow_nil_spec.rb +0 -138
  246. data/projects/typesystem/spec/builtin_types/array_spec.rb +0 -140
  247. data/projects/typesystem/spec/builtin_types/associative_array_spec.rb +0 -228
  248. data/projects/typesystem/spec/builtin_types/attributes_spec.rb +0 -490
  249. data/projects/typesystem/spec/builtin_types/big_decimal_spec.rb +0 -42
  250. data/projects/typesystem/spec/builtin_types/boolean_spec.rb +0 -43
  251. data/projects/typesystem/spec/builtin_types/class_type_desugarizer_spec.rb +0 -17
  252. data/projects/typesystem/spec/builtin_types/custom_type_spec.rb +0 -430
  253. data/projects/typesystem/spec/builtin_types/date_spec.rb +0 -37
  254. data/projects/typesystem/spec/builtin_types/datetime_spec.rb +0 -49
  255. data/projects/typesystem/spec/builtin_types/email_spec.rb +0 -44
  256. data/projects/typesystem/spec/builtin_types/float_spec.rb +0 -59
  257. data/projects/typesystem/spec/builtin_types/instance_of_spec.rb +0 -75
  258. data/projects/typesystem/spec/builtin_types/one_of_spec.rb +0 -73
  259. data/projects/typesystem/spec/builtin_types/string_spec.rb +0 -117
  260. data/projects/typesystem/spec/builtin_types/symbol_spec.rb +0 -24
  261. data/projects/typesystem/spec/builtin_types/tuple_spec.rb +0 -125
  262. data/projects/typesystem/spec/callback/callback_spec.rb +0 -155
  263. data/projects/typesystem/spec/callback/registry/conditioned_spec.rb +0 -152
  264. data/projects/typesystem/spec/callback/registry/multiple_action_spec.rb +0 -144
  265. data/projects/typesystem/spec/callback/registry/single_action_spec.rb +0 -114
  266. data/projects/typesystem/spec/common/data_path_spec.rb +0 -268
  267. data/projects/typesystem/spec/common/error_collection_spec.rb +0 -77
  268. data/projects/typesystem/spec/common/error_key_spec.rb +0 -56
  269. data/projects/typesystem/spec/common/outcome_spec.rb +0 -65
  270. data/projects/typesystem/spec/common/possible_error_spec.rb +0 -17
  271. data/projects/typesystem/spec/concerns/concern_spec.rb +0 -122
  272. data/projects/typesystem/spec/enumerated/accessors_spec.rb +0 -182
  273. data/projects/typesystem/spec/enumerated/enumerated_spec.rb +0 -32
  274. data/projects/typesystem/spec/enumerated/values_spec.rb +0 -67
  275. data/projects/typesystem/spec/foobara/foobara_spec.rb +0 -45
  276. data/projects/typesystem/spec/namespace/ambiguous_registry_spec.rb +0 -70
  277. data/projects/typesystem/spec/namespace/foobara_simulation_spec.rb +0 -254
  278. data/projects/typesystem/spec/namespace/is_namespace_spec.rb +0 -103
  279. data/projects/typesystem/spec/namespace/namespace_helpers_spec.rb +0 -67
  280. data/projects/typesystem/spec/namespace/namespace_spec.rb +0 -335
  281. data/projects/typesystem/spec/namespace/prefixless_registry_spec.rb +0 -30
  282. data/projects/typesystem/spec/namespace/unambiguous_registry_spec.rb +0 -50
  283. data/projects/typesystem/spec/spec_helper.rb +0 -52
  284. data/projects/typesystem/spec/state_machine/callbacks_spec.rb +0 -144
  285. data/projects/typesystem/spec/state_machine/state_machine_spec.rb +0 -224
  286. data/projects/typesystem/spec/state_machine/target_attribute_spec.rb +0 -46
  287. data/projects/typesystem/spec/support/rubyprof.rb +0 -32
  288. data/projects/typesystem/spec/support/term_trap.rb +0 -6
  289. data/projects/typesystem/spec/type_declarations/attributes_spec.rb +0 -14
  290. data/projects/typesystem/spec/type_declarations/attributes_transformer_spec.rb +0 -95
  291. data/projects/typesystem/spec/type_declarations/dsl/attributes_spec.rb +0 -107
  292. data/projects/typesystem/spec/type_declarations/handlers/extend_registered_type_declaration_spec.rb +0 -13
  293. data/projects/typesystem/spec/type_declarations/sensitive_type_removers_spec.rb +0 -210
  294. data/projects/typesystem/spec/type_declarations/type_builder_spec.rb +0 -47
  295. data/projects/typesystem/spec/type_declarations/type_declaration_spec.rb +0 -252
  296. data/projects/typesystem/spec/type_declarations/type_declarations_spec.rb +0 -11
  297. data/projects/typesystem/spec/type_declarations/typed_transformer_spec.rb +0 -65
  298. data/projects/typesystem/spec/types/sensitive_spec.rb +0 -36
  299. data/projects/typesystem/spec/types/type_spec.rb +0 -102
  300. data/projects/typesystem/spec/value/caster_spec.rb +0 -23
  301. data/projects/typesystem/spec/value/processor/runner_spec.rb +0 -34
  302. data/projects/typesystem/spec/value/processor/selection_spec.rb +0 -71
  303. data/projects/typesystem/spec/value/processor_spec.rb +0 -76
  304. data/projects/typesystem/spec/value/transformer_spec.rb +0 -27
  305. /data/projects/{command/src → entities_plumbing/src/extensions}/command_pattern_implementation/concerns/transactions.rb +0 -0
  306. /data/projects/{entities → typesystem}/projects/model/src/concerns/aliases.rb +0 -0
  307. /data/projects/{entities → typesystem}/projects/model/src/concerns/reflection.rb +0 -0
  308. /data/projects/{entities → typesystem}/projects/model/src/extensions/builtin_types/model/supported_transformers/mutable.rb +0 -0
  309. /data/projects/{entities → typesystem}/projects/model/src/extensions/builtin_types/model/validators/model_instance_is_valid.rb +0 -0
  310. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/array_with_symbolic_elements.rb +0 -0
  311. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/delegates_desugarizer.rb +0 -0
  312. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/delegates_validator.rb +0 -0
  313. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/hash_desugarizer.rb +0 -0
  314. /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
  315. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/symbolize_private.rb +0 -0
  316. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration/valid_attribute_names.rb +0 -0
  317. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_model_type_declaration.rb +0 -0
  318. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/hash_desugarizer.rb +0 -0
  319. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/model_class_type_desugarizer.rb +0 -0
  320. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/mutable_validator.rb +0 -0
  321. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/normalize_mutable_attributes_desugarizer.rb +0 -0
  322. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/to_type_transformer.rb +0 -0
  323. /data/projects/{entities → typesystem}/projects/model/src/extensions/type_declarations/lazy_element_types/model.rb +0 -0
  324. /data/projects/{entities → typesystem}/projects/model/src/sensitive_type_removers/extended_model.rb +0 -0
  325. /data/projects/{entities → typesystem}/projects/model/src/sensitive_type_removers/model.rb +0 -0
@@ -1,54 +0,0 @@
1
- ENV["FOOBARA_ENV"] = "test"
2
-
3
- require "bundler/setup"
4
-
5
- if ENV["RUBY_DEBUG"] == "true"
6
- require "debug"
7
- elsif ENV["SKIP_PRY"] != "true" && ENV["CI"] != "true"
8
- require "pry"
9
- require "pry-byebug" unless ENV["SKIP_BYEBUG"] == "true"
10
- end
11
-
12
- require "rspec/its"
13
- require "simplecov"
14
-
15
- SimpleCov.root "#{__dir__}/../../../"
16
- SimpleCov.command_name "entities"
17
- SimpleCov.coverage_dir "coverage/entities"
18
-
19
- SimpleCov.start do
20
- add_filter "spec/support/"
21
- # This avoids printing out info about coverage generated by HTTPFormatter
22
- formatter Class.new { def format(_result) = nil }
23
- end
24
-
25
- require "foobara/project"
26
- require "foobara/delegate"
27
- require "foobara/builtin_types"
28
- require "foobara/entity"
29
- require "foobara/in_memory_crud_driver"
30
- require "foobara/model_attribute_helpers"
31
- require "foobara/nested_transactionable"
32
-
33
- Foobara.install!
34
-
35
- RSpec.configure do |config|
36
- config.filter_run_when_matching :focus
37
-
38
- # Enable flags like --only-failures and --next-failure
39
- config.example_status_persistence_file_path = ".rspec_status"
40
-
41
- # Disable RSpec exposing methods globally on `Module` and `main`
42
- config.disable_monkey_patching!
43
-
44
- config.order = :defined
45
-
46
- config.expect_with :rspec do |c|
47
- c.syntax = :expect
48
- end
49
-
50
- # config.raise_errors_for_deprecations!
51
- end
52
-
53
- require "foobara/spec_helpers/all"
54
- Dir["#{__dir__}/support/**/*.rb"].each { |f| require f }
@@ -1,32 +0,0 @@
1
- RSpec.configure do |config|
2
- # TODO: move this to foobara-spec-helpers project
3
- config.around(:each, :profile) do |example|
4
- require "ruby-prof"
5
- RubyProf.start
6
-
7
- example.run
8
-
9
- result = RubyProf.stop
10
- printer = RubyProf::GraphHtmlPrinter.new(result)
11
- File.open("tmp/profile-out.html", "w+") do |file|
12
- printer.print(file)
13
- end
14
- end
15
-
16
- if ENV["RUBY_PROF"] == "true"
17
- config.before(:suite) do
18
- require "ruby-prof"
19
- require "ruby-prof/profile"
20
- RubyProf.start
21
- end
22
-
23
- config.after(:suite) do
24
- result = RubyProf.stop
25
-
26
- printer = RubyProf::GraphHtmlPrinter.new(result)
27
- File.open("tmp/profile-out.html", "w+") do |file|
28
- printer.print(file)
29
- end
30
- end
31
- end
32
- end
@@ -1,6 +0,0 @@
1
- # Convenient whenever running into an infinite loop
2
- Signal.trap("TERM") do
3
- puts "SIGTERM received, printing backtrace:"
4
- puts caller.join("\n")
5
- exit
6
- end
@@ -1,90 +0,0 @@
1
- RSpec.describe Foobara::TypeDeclarations do
2
- after { Foobara.reset_alls }
3
-
4
- describe ".remove_sensitive_types" do
5
- let(:strict_type_declaration) do
6
- type.declaration_data
7
- end
8
-
9
- let(:type_declaration_without_sensitive_types) do
10
- described_class.remove_sensitive_types(strict_type_declaration)
11
- end
12
-
13
- context "when model/entity/detached entity" do
14
- let(:type) do
15
- stub_class "SomeModel", Foobara::Model do
16
- attributes do
17
- foo :string
18
- foo2 :string, :sensitive
19
- end
20
- end
21
-
22
- stub_class("InnerEntity", Foobara::Entity) do
23
- attributes do
24
- id :integer
25
- bar :string
26
- bar2 :string, :sensitive
27
- end
28
- primary_key :id
29
- end
30
-
31
- stub_class "InnerDetachedEntity", Foobara::DetachedEntity do
32
- attributes do
33
- id :integer
34
- baz :string
35
- baz2 :string, :sensitive
36
- end
37
- primary_key :id
38
- end
39
-
40
- stub_class "OuterEntity", Foobara::Entity do
41
- attributes do
42
- id :integer
43
- foo :string
44
- foo2 :string, :sensitive
45
- some_inner_entity InnerEntity
46
- some_detached_entity InnerDetachedEntity
47
- some_model SomeModel
48
- end
49
- primary_key :id
50
- end
51
-
52
- OuterEntity.entity_type
53
- end
54
-
55
- it "returns a declaration without sensitive attributes all the way down" do
56
- expect(
57
- type_declaration_without_sensitive_types[:attributes_declaration][:element_type_declarations]
58
- ).to eq(
59
- id: :integer,
60
- foo: :string,
61
- some_inner_entity: :InnerEntity,
62
- some_detached_entity: :InnerDetachedEntity,
63
- some_model: :SomeModel
64
- )
65
- end
66
-
67
- context "when subclass of an entity" do
68
- let(:type) do
69
- stub_class "SubEntity", super().target_class
70
-
71
- SubEntity.entity_type
72
- end
73
-
74
- it "returns a declaration without sensitive attributes all the way down" do
75
- expect(type.target_class).to eq(SubEntity)
76
- expect(SubEntity.superclass).to eq(OuterEntity)
77
- expect(
78
- type_declaration_without_sensitive_types[:attributes_declaration][:element_type_declarations]
79
- ).to eq(
80
- id: :integer,
81
- foo: :string,
82
- some_inner_entity: :InnerEntity,
83
- some_detached_entity: :InnerDetachedEntity,
84
- some_model: :SomeModel
85
- )
86
- end
87
- end
88
- end
89
- end
90
- end
@@ -1,6 +0,0 @@
1
- guard :rspec, all_after_pass: false, all_on_start: true, cmd: "bundle exec rspec", failed_mode: :focus do
2
- watch(%r{^spec/(.+)_spec\.rb$})
3
- watch(%r{^src/(.+)\.rb$}) { "spec/" }
4
- watch(%r{^lib/(.+)\.rb$}) { "spec/" }
5
- watch(%r{^spec/spec_helper.rb$}) { "spec/" }
6
- end
@@ -1,159 +0,0 @@
1
- RSpec.describe Foobara::CommandConnector do
2
- before do
3
- Foobara::Persistence.default_crud_driver = Foobara::Persistence::CrudDrivers::InMemory.new
4
- end
5
-
6
- after do
7
- Foobara.reset_alls
8
- end
9
-
10
- let(:command_class) do
11
- stub_class(:ComputeExponent, Foobara::Command) do
12
- inputs exponent: :integer, base: :integer
13
- result :integer
14
-
15
- def execute = base ** exponent
16
- end
17
- end
18
-
19
- let(:command_connector) do
20
- described_class.new(authenticator:, current_user: domain_user_class)
21
- end
22
-
23
- let(:auth_user_class) do
24
- stub_class "AuthUser", Foobara::Entity do
25
- attributes id: :integer, name: :string
26
- primary_key :id
27
- end
28
- end
29
- let(:domain_user_class) do
30
- auth_user_class
31
- stub_class "User", Foobara::Entity do
32
- attributes id: :integer, auth_user: AuthUser
33
- primary_key :id
34
- end
35
- end
36
-
37
- let(:auth_user) do
38
- auth_user_class.transaction { AuthUser.create(name: "Fumiko") }
39
- end
40
- let(:domain_user) do
41
- au = auth_user
42
- domain_user_class.transaction do
43
- User.create(auth_user: au)
44
- end
45
- end
46
-
47
- let(:authenticator) do
48
- user = auth_user
49
- Foobara::CommandConnector::Authenticator.subclass(to: AuthUser) { user }
50
- end
51
-
52
- let(:base) { 2 }
53
- let(:exponent) { 3 }
54
-
55
- let(:response) { command_connector.run(full_command_name:, action:, inputs:) }
56
- let(:errors_hash) { response.body.errors_hash }
57
-
58
- let(:action) { "run" }
59
- let(:full_command_name) { "ComputeExponent" }
60
- let(:inputs) do
61
- { base:, exponent: }
62
- end
63
-
64
- describe "#run_command" do
65
- class << self
66
- def with_current_user_allowed_rule
67
- let(:allowed_rule) do
68
- user = domain_user
69
- -> { current_user == user }
70
- end
71
- end
72
-
73
- def with_current_user_not_allowed_rule
74
- let(:allowed_rule) do
75
- -> { current_user == "asfdasdf" }
76
- end
77
- end
78
-
79
- def with_authenticated_user_allowed_rule
80
- let(:allowed_rule) do
81
- user = auth_user
82
- -> { authenticated_user == user }
83
- end
84
- end
85
-
86
- def with_authenticated_user_not_allowed_rule
87
- let(:allowed_rule) do
88
- -> { authenticated_user == "asfdasdf" }
89
- end
90
- end
91
- end
92
-
93
- shared_examples "a connector with auth mappers" do
94
- before do
95
- command_connector.connect(command_class, allowed_rule:)
96
- end
97
-
98
- context "when using current_user in the allowed rule" do
99
- context "when allowed" do
100
- with_current_user_allowed_rule
101
-
102
- it "runs the command" do
103
- expect(response.status).to be(0)
104
- expect(response.body).to eq(8)
105
- end
106
- end
107
-
108
- context "when not allowed" do
109
- with_current_user_not_allowed_rule
110
-
111
- it "fails with a relevant error" do
112
- expect(response.status).to be(1)
113
- expect(errors_hash.key?("runtime.not_allowed")).to be true
114
- end
115
- end
116
-
117
- context "when calling current_user multiple times" do
118
- let(:allowed_rule) do
119
- user = domain_user
120
- -> { current_user && current_user == user }
121
- end
122
-
123
- it "runs the command" do
124
- expect(response.status).to be(0)
125
- expect(response.body).to eq(8)
126
- end
127
- end
128
- end
129
-
130
- context "when using authenticated_user in the allowed rule" do
131
- context "when allowed" do
132
- with_authenticated_user_allowed_rule
133
-
134
- it "runs the command" do
135
- expect(response.status).to be(0)
136
- expect(response.body).to eq(8)
137
- end
138
- end
139
-
140
- context "when not allowed" do
141
- with_authenticated_user_not_allowed_rule
142
-
143
- it "fails with a relevant error" do
144
- expect(response.status).to be(1)
145
- expect(errors_hash.key?("runtime.not_allowed")).to be true
146
- end
147
- end
148
- end
149
- end
150
-
151
- context "when auth user mapper is an entity class" do
152
- before do
153
- domain_user
154
- end
155
-
156
- it_behaves_like "a connector with auth mappers"
157
- end
158
- end
159
- end
@@ -1,55 +0,0 @@
1
- ENV["FOOBARA_ENV"] = "test"
2
-
3
- require "bundler/setup"
4
-
5
- if ENV["RUBY_DEBUG"] == "true"
6
- require "debug"
7
- elsif ENV["SKIP_PRY"] != "true" && ENV["CI"] != "true"
8
- require "pry"
9
- require "pry-byebug" unless ENV["SKIP_BYEBUG"] == "true"
10
- end
11
-
12
- require "rspec/its"
13
- require "simplecov"
14
-
15
- SimpleCov.root "#{__dir__}/../../../"
16
- SimpleCov.command_name "entities_plumbing"
17
- SimpleCov.coverage_dir "coverage/entities_plumbing"
18
-
19
- SimpleCov.start do
20
- add_filter "spec/support/"
21
- # This avoids printing out info about coverage generated by HTTPFormatter
22
- formatter Class.new { def format(_result) = nil }
23
- end
24
-
25
- require "foobara/all"
26
- require "foobara/command_connectors"
27
- require "foobara/entities_plumbing"
28
-
29
- RSpec.configure do |config|
30
- # Need to do :all instead of :each because for specs that use .around,
31
- # .after(:each) do |example| here is called after example.run but before any threads created in
32
- # .around might have been cleaned up.
33
- config.after(:suite) do
34
- threads = Thread.list.reject { |t| t.name == "DEBUGGER__::SESSION@server" }
35
- expect(threads.size).to eq(1)
36
- end
37
- config.filter_run_when_matching :focus
38
-
39
- # Enable flags like --only-failures and --next-failure
40
- config.example_status_persistence_file_path = ".rspec_status"
41
-
42
- # Disable RSpec exposing methods globally on `Module` and `main`
43
- config.disable_monkey_patching!
44
-
45
- config.order = :defined
46
-
47
- config.expect_with :rspec do |c|
48
- c.syntax = :expect
49
- end
50
-
51
- # config.raise_errors_for_deprecations!
52
- end
53
-
54
- require "foobara/spec_helpers/all"
55
- Dir["#{__dir__}/support/**/*.rb"].each { |f| require f }
@@ -1,32 +0,0 @@
1
- RSpec.configure do |config|
2
- # TODO: move this to foobara-spec-helpers project
3
- config.around(:each, :profile) do |example|
4
- require "ruby-prof"
5
- RubyProf.start
6
-
7
- example.run
8
-
9
- result = RubyProf.stop
10
- printer = RubyProf::GraphHtmlPrinter.new(result)
11
- File.open("tmp/profile-out.html", "w+") do |file|
12
- printer.print(file)
13
- end
14
- end
15
-
16
- if ENV["RUBY_PROF"] == "true"
17
- config.before(:suite) do
18
- require "ruby-prof"
19
- require "ruby-prof/profile"
20
- RubyProf.start
21
- end
22
-
23
- config.after(:suite) do
24
- result = RubyProf.stop
25
-
26
- printer = RubyProf::GraphHtmlPrinter.new(result)
27
- File.open("tmp/profile-out.html", "w+") do |file|
28
- printer.print(file)
29
- end
30
- end
31
- end
32
- end
@@ -1,6 +0,0 @@
1
- # Convenient whenever running into an infinite loop
2
- Signal.trap("TERM") do
3
- puts "SIGTERM received, printing backtrace:"
4
- puts caller.join("\n")
5
- exit
6
- end