foobara 0.3.0 → 0.4.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 (495) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +17 -111
  4. data/lib/foobara/all.rb +22 -0
  5. data/projects/command/lib/foobara/command.rb +6 -3
  6. data/projects/command/src/command_pattern_implementation/concerns/subcommands.rb +3 -1
  7. data/projects/command/src/command_pattern_implementation/concerns/transactions.rb +3 -0
  8. data/projects/command/src/extensions/domain/domain_module_extension.rb +16 -0
  9. data/projects/command/src/extensions/domain/domain_module_extension_extension.rb +22 -0
  10. data/projects/command/src/extensions/foobara.rb +7 -0
  11. data/projects/command_connectors/Guardfile +6 -0
  12. data/projects/command_connectors/lib/foobara/command_connectors.rb +1 -1
  13. data/projects/command_connectors/spec/ambiguous_lookups_spec.rb +143 -0
  14. data/projects/command_connectors/spec/auth_mappers_spec.rb +201 -0
  15. data/projects/command_connectors/spec/command_connector_spec.rb +2443 -0
  16. data/projects/command_connectors/spec/command_registry_spec.rb +9 -0
  17. data/projects/command_connectors/spec/commands/describe_spec.rb +83 -0
  18. data/projects/command_connectors/spec/commands/ping_spec.rb +14 -0
  19. data/projects/command_connectors/spec/commands/query_git_commit_info_spec.rb +55 -0
  20. data/projects/command_connectors/spec/fixtures/command_connectors/manifest_with_errors_with_missing_command_parents.yaml +1662 -0
  21. data/projects/command_connectors/spec/not_found_error_spec.rb +17 -0
  22. data/projects/command_connectors/spec/pre_commit_transformers/load_atoms_pre_commit_transformer_spec.rb +108 -0
  23. data/projects/command_connectors/spec/request_spec.rb +95 -0
  24. data/projects/command_connectors/spec/serializer_spec.rb +9 -0
  25. data/projects/command_connectors/spec/serializers/aggregate_serializer_spec.rb +45 -0
  26. data/projects/command_connectors/spec/serializers/atomic_serializer_spec.rb +68 -0
  27. data/projects/command_connectors/spec/serializers/entities_to_primary_keys_serializer_spec.rb +36 -0
  28. data/projects/command_connectors/spec/serializers/json_serializer_spec.rb +22 -0
  29. data/projects/command_connectors/spec/serializers/noop_serializer_spec.rb +22 -0
  30. data/projects/command_connectors/spec/serializers/yaml_serializer_spec.rb +22 -0
  31. data/projects/command_connectors/spec/spec_helper.rb +56 -0
  32. data/projects/command_connectors/spec/support/rubyprof.rb +32 -0
  33. data/projects/command_connectors/spec/support/term_trap.rb +6 -0
  34. data/projects/command_connectors/spec/transformers/entity_to_primary_key_inputs_transformer_spec.rb +119 -0
  35. data/projects/command_connectors/src/authenticator.rb +27 -16
  36. data/projects/command_connectors/src/command_connector/commands/describe.rb +4 -2
  37. data/projects/command_connectors/src/command_connector/request.rb +27 -1
  38. data/projects/command_connectors/src/command_connector.rb +142 -18
  39. data/projects/command_connectors/src/transformed_command.rb +74 -16
  40. data/projects/domain_mapper/lib/foobara/domain_mapper.rb +4 -0
  41. data/projects/domain_mapper/src/domain_mapper.rb +2 -0
  42. data/projects/{detached_entity → entities/projects/detached_entity}/lib/foobara/detached_entity.rb +4 -0
  43. data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/primary_key.rb +3 -1
  44. data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/types.rb +9 -1
  45. data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/builtin_types/detached_entity/validators/model_instance_is_valid.rb +1 -1
  46. data/projects/{entity → entities/projects/entity}/lib/foobara/entity.rb +4 -0
  47. data/projects/{entity → entities/projects/entity}/src/concerns/callbacks.rb +2 -0
  48. data/projects/{entity → entities/projects/entity}/src/concerns/transactions.rb +1 -5
  49. data/projects/entities/projects/entity/src/extensions/domain/domain_module_extension.rb +111 -0
  50. data/projects/{entity → entities/projects/entity}/src/not_found_error.rb +11 -1
  51. data/projects/{in_memory_crud_driver → entities/projects/in_memory_crud_driver}/lib/foobara/in_memory_crud_driver.rb +4 -0
  52. data/projects/entities/projects/in_memory_crud_driver_minimal/lib/foobara/in_memory_crud_driver_minimal.rb +6 -0
  53. data/projects/{in_memory_crud_driver_minimal → entities/projects/in_memory_crud_driver_minimal}/src/in_memory_minimal.rb +6 -4
  54. data/projects/{model → entities/projects/model}/lib/foobara/model.rb +4 -0
  55. data/projects/{model → entities/projects/model}/src/concerns/classes.rb +1 -1
  56. data/projects/{model → entities/projects/model}/src/concerns/types.rb +4 -2
  57. data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/to_type_transformer.rb +8 -3
  58. data/projects/{model → entities/projects/model}/src/model.rb +25 -1
  59. data/projects/{model_attribute_helpers → entities/projects/model_attribute_helpers}/lib/foobara/model_attribute_helpers.rb +2 -0
  60. data/projects/{model_attribute_helpers → entities/projects/model_attribute_helpers}/src/attribute_helper_aliases.rb +1 -1
  61. data/projects/{nested_transactionable → entities/projects/nested_transactionable}/lib/foobara/nested_transactionable.rb +2 -0
  62. data/projects/{persistence → entities/projects/persistence}/lib/foobara/persistence.rb +4 -0
  63. data/projects/{persistence → entities/projects/persistence}/src/entity_base/transaction/concerns/transaction_tracking.rb +2 -0
  64. data/projects/{persistence → entities/projects/persistence}/src/entity_base/transaction/state_machine.rb +2 -0
  65. data/projects/{persistence → entities/projects/persistence}/src/entity_base/transaction_table/concerns/record_tracking.rb +2 -0
  66. data/projects/{persistence → entities/projects/persistence}/src/entity_base/transaction_table.rb +2 -2
  67. data/projects/entities/projects/weak_object_set/lib/foobara/weak_object_set.rb +6 -0
  68. data/projects/entities/spec/builtin_types/detached_entity_spec.rb +300 -0
  69. data/projects/entities/spec/builtin_types/entity_spec.rb +501 -0
  70. data/projects/entities/spec/builtin_types/model_spec.rb +420 -0
  71. data/projects/entities/spec/detached_entity/casting_spec.rb +31 -0
  72. data/projects/entities/spec/entity/concerns/associations_spec.rb +73 -0
  73. data/projects/entities/spec/entity/concerns/attribute_helpers_spec.rb +220 -0
  74. data/projects/entities/spec/entity/concerns/callbacks_spec.rb +61 -0
  75. data/projects/entities/spec/entity/concerns/initialization_spec.rb +213 -0
  76. data/projects/entities/spec/entity/concerns/mutations_spec.rb +38 -0
  77. data/projects/entities/spec/entity/concerns/queries_spec.rb +184 -0
  78. data/projects/entities/spec/entity/entity_spec.rb +240 -0
  79. data/projects/entities/spec/entity/extending_existing_spec.rb +137 -0
  80. data/projects/entities/spec/entity/extensions/domain_module_extension_spec.rb +42 -0
  81. data/projects/entities/spec/entity/from_type_declaration_spec.rb +34 -0
  82. data/projects/entities/spec/entity/that_owns_spec.rb +243 -0
  83. data/projects/entities/spec/entity/weak_object_set_spec.rb +91 -0
  84. data/projects/entities/spec/model/model_spec.rb +135 -0
  85. data/projects/entities/spec/model/types_spec.rb +393 -0
  86. data/projects/entities/spec/nested_transactionable/nested_transactionable_spec.rb +67 -0
  87. data/projects/entities/spec/persistence/entity_attributes_crud_drivers/in_memory_minimal_spec.rb +13 -0
  88. data/projects/entities/spec/persistence/entity_base/transaction_spec.rb +509 -0
  89. data/projects/entities/spec/persistence/entity_base/transaction_table_spec.rb +58 -0
  90. data/projects/entities/spec/persistence/persistence_spec.rb +148 -0
  91. data/projects/entities/spec/spec_helper.rb +54 -0
  92. data/projects/entities/spec/support/rubyprof.rb +32 -0
  93. data/projects/entities/spec/support/term_trap.rb +6 -0
  94. data/projects/entities/spec/type_declarations/sensitive_type_removers_spec.rb +90 -0
  95. data/projects/entities_plumbing/Guardfile +6 -0
  96. data/projects/entities_plumbing/lib/foobara/entities_plumbing.rb +12 -0
  97. data/projects/entities_plumbing/spec/auth_mappers_spec.rb +159 -0
  98. data/projects/entities_plumbing/spec/spec_helper.rb +54 -0
  99. data/projects/entities_plumbing/spec/support/rubyprof.rb +32 -0
  100. data/projects/entities_plumbing/spec/support/term_trap.rb +6 -0
  101. data/projects/entities_plumbing/src/command_connectors_extension.rb +17 -0
  102. data/projects/entities_plumbing/src/extensions/authenticator.rb +13 -0
  103. data/projects/manifest/lib/foobara/manifest.rb +2 -0
  104. data/projects/manifest/spec/manifest_spec.rb +378 -0
  105. data/projects/manifest/spec/model_spec.rb +74 -0
  106. data/projects/manifest/spec/spec_helper.rb +53 -0
  107. data/projects/manifest/spec/type_declaration_spec.rb +39 -0
  108. data/projects/manifest/src/{foobara/manifest/array.rb → array.rb} +1 -1
  109. data/projects/manifest/src/{foobara/manifest/attributes.rb → attributes.rb} +1 -1
  110. data/projects/manifest/src/{foobara/manifest/base_manifest.rb → base_manifest.rb} +14 -6
  111. data/projects/manifest/src/{foobara/manifest/command.rb → command.rb} +3 -3
  112. data/projects/manifest/src/{foobara/manifest/detached_entity.rb → detached_entity.rb} +1 -1
  113. data/projects/manifest/src/{foobara/manifest/model.rb → model.rb} +1 -1
  114. data/projects/manifest/src/{foobara/manifest/possible_error.rb → possible_error.rb} +2 -0
  115. data/projects/manifest/src/{foobara/manifest/type.rb → type.rb} +4 -4
  116. data/projects/manifest/src/{foobara/manifest/type_declaration.rb → type_declaration.rb} +5 -5
  117. data/projects/model_plumbing/lib/foobara/model_plumbing.rb +13 -0
  118. data/projects/{namespace/lib/foobara/namespace.rb → model_plumbing/src/model_plumbing.rb} +1 -1
  119. data/projects/{builtin_types → typesystem/projects/builtin_types}/lib/foobara/builtin_types.rb +4 -0
  120. data/projects/{builtin_types → typesystem/projects/builtin_types}/src/builtin_types.rb +7 -7
  121. data/projects/typesystem/projects/callback/lib/foobara/callback.rb +3 -0
  122. data/projects/{callback → typesystem/projects/callback}/src/block/concerns/type.rb +2 -0
  123. data/projects/{callback → typesystem/projects/callback}/src/set.rb +3 -1
  124. data/projects/{common → typesystem/projects/common}/lib/foobara/common.rb +2 -0
  125. data/projects/{common → typesystem/projects/common}/src/data_path.rb +1 -1
  126. data/projects/{common → typesystem/projects/common}/src/error.rb +33 -9
  127. data/projects/{common → typesystem/projects/common}/src/error_key.rb +1 -1
  128. data/projects/{common → typesystem/projects/common}/src/outcome.rb +9 -5
  129. data/projects/typesystem/projects/concerns/lib/foobara/concerns.rb +3 -0
  130. data/projects/typesystem/projects/delegate/lib/foobara/delegate.rb +6 -0
  131. data/projects/{delegate → typesystem/projects/delegate}/src/extensions/module.rb +4 -0
  132. data/projects/{domain → typesystem/projects/domain}/lib/foobara/domain.rb +2 -0
  133. data/projects/{domain → typesystem/projects/domain}/src/domain.rb +20 -7
  134. data/projects/typesystem/projects/domain/src/domain_module_extension.rb +255 -0
  135. data/projects/{domain → typesystem/projects/domain}/src/extensions/foobara.rb +0 -10
  136. data/projects/{domain → typesystem/projects/domain}/src/global_domain.rb +1 -0
  137. data/projects/{domain → typesystem/projects/domain}/src/global_organization.rb +1 -0
  138. data/projects/{domain → typesystem/projects/domain}/src/is_manifestable.rb +1 -0
  139. data/projects/{domain → typesystem/projects/domain}/src/manifestable.rb +1 -0
  140. data/projects/typesystem/projects/domain/src/module_extension.rb +62 -0
  141. data/projects/typesystem/projects/enumerated/lib/foobara/enumerated.rb +3 -0
  142. data/projects/{enumerated → typesystem/projects/enumerated}/src/accessors.rb +2 -0
  143. data/projects/typesystem/projects/namespace/lib/foobara/namespace.rb +6 -0
  144. data/projects/{namespace → typesystem/projects/namespace}/src/is_namespace.rb +8 -0
  145. data/projects/{namespace → typesystem/projects/namespace}/src/namespace.rb +2 -0
  146. data/projects/{namespace → typesystem/projects/namespace}/src/namespace_helpers.rb +1 -0
  147. data/projects/typesystem/projects/project/lib/foobara/project.rb +10 -0
  148. data/projects/{foobara → typesystem/projects/project}/src/foobara.rb +1 -6
  149. data/projects/{foobara → typesystem/projects/project}/src/project.rb +3 -0
  150. data/projects/typesystem/projects/state_machine/lib/foobara/state_machine.rb +3 -0
  151. data/projects/{state_machine → typesystem/projects/state_machine}/src/callbacks.rb +37 -8
  152. data/projects/{state_machine → typesystem/projects/state_machine}/src/sugar.rb +2 -0
  153. data/projects/{state_machine → typesystem/projects/state_machine}/src/transition_log.rb +2 -0
  154. data/projects/{type_declarations → typesystem/projects/type_declarations}/lib/foobara/type_declarations.rb +10 -22
  155. data/projects/{type_declarations → typesystem/projects/type_declarations}/src/dsl/attributes.rb +2 -0
  156. data/projects/{type_declarations → typesystem/projects/type_declarations}/src/error_extension.rb +9 -1
  157. data/projects/{type_declarations → typesystem/projects/type_declarations}/src/lazy_element_types/array.rb +2 -0
  158. data/projects/{type_declarations → typesystem/projects/type_declarations}/src/type_declaration.rb +15 -12
  159. data/projects/{type_declarations → typesystem/projects/type_declarations}/src/type_declaration_handler.rb +21 -5
  160. data/projects/{type_declarations → typesystem/projects/type_declarations}/src/typed_transformer.rb +13 -2
  161. data/projects/{type_declarations → typesystem/projects/type_declarations}/src/with_registries.rb +31 -8
  162. data/projects/{types → typesystem/projects/types}/lib/foobara/types.rb +2 -0
  163. data/projects/{types → typesystem/projects/types}/src/type/concerns/supported_processor_registration.rb +2 -0
  164. data/projects/{types → typesystem/projects/types}/src/type.rb +72 -68
  165. data/projects/typesystem/projects/value/lib/foobara/value.rb +12 -0
  166. data/projects/{value → typesystem/projects/value}/src/processor.rb +19 -6
  167. data/projects/typesystem/spec/builtin_types/allow_nil_spec.rb +138 -0
  168. data/projects/typesystem/spec/builtin_types/array_spec.rb +140 -0
  169. data/projects/typesystem/spec/builtin_types/associative_array_spec.rb +228 -0
  170. data/projects/typesystem/spec/builtin_types/attributes_spec.rb +453 -0
  171. data/projects/typesystem/spec/builtin_types/big_decimal_spec.rb +42 -0
  172. data/projects/typesystem/spec/builtin_types/boolean_spec.rb +43 -0
  173. data/projects/typesystem/spec/builtin_types/class_type_desugarizer_spec.rb +17 -0
  174. data/projects/typesystem/spec/builtin_types/custom_type_spec.rb +430 -0
  175. data/projects/typesystem/spec/builtin_types/date_spec.rb +37 -0
  176. data/projects/typesystem/spec/builtin_types/datetime_spec.rb +49 -0
  177. data/projects/typesystem/spec/builtin_types/email_spec.rb +44 -0
  178. data/projects/typesystem/spec/builtin_types/float_spec.rb +59 -0
  179. data/projects/typesystem/spec/builtin_types/instance_of_spec.rb +75 -0
  180. data/projects/typesystem/spec/builtin_types/one_of_spec.rb +73 -0
  181. data/projects/typesystem/spec/builtin_types/string_spec.rb +117 -0
  182. data/projects/typesystem/spec/builtin_types/symbol_spec.rb +24 -0
  183. data/projects/typesystem/spec/builtin_types/tuple_spec.rb +125 -0
  184. data/projects/typesystem/spec/callback/callback_spec.rb +155 -0
  185. data/projects/typesystem/spec/callback/registry/conditioned_spec.rb +152 -0
  186. data/projects/typesystem/spec/callback/registry/multiple_action_spec.rb +144 -0
  187. data/projects/typesystem/spec/callback/registry/single_action_spec.rb +114 -0
  188. data/projects/typesystem/spec/common/data_path_spec.rb +268 -0
  189. data/projects/typesystem/spec/common/error_collection_spec.rb +77 -0
  190. data/projects/typesystem/spec/common/error_key_spec.rb +56 -0
  191. data/projects/typesystem/spec/common/outcome_spec.rb +65 -0
  192. data/projects/typesystem/spec/common/possible_error_spec.rb +17 -0
  193. data/projects/typesystem/spec/concerns/concern_spec.rb +122 -0
  194. data/projects/typesystem/spec/enumerated/accessors_spec.rb +182 -0
  195. data/projects/typesystem/spec/enumerated/enumerated_spec.rb +32 -0
  196. data/projects/typesystem/spec/enumerated/values_spec.rb +67 -0
  197. data/projects/typesystem/spec/foobara/foobara_spec.rb +45 -0
  198. data/projects/typesystem/spec/namespace/ambiguous_registry_spec.rb +70 -0
  199. data/projects/typesystem/spec/namespace/foobara_simulation_spec.rb +254 -0
  200. data/projects/typesystem/spec/namespace/is_namespace_spec.rb +103 -0
  201. data/projects/typesystem/spec/namespace/namespace_helpers_spec.rb +67 -0
  202. data/projects/typesystem/spec/namespace/namespace_spec.rb +335 -0
  203. data/projects/typesystem/spec/namespace/prefixless_registry_spec.rb +30 -0
  204. data/projects/typesystem/spec/namespace/unambiguous_registry_spec.rb +50 -0
  205. data/projects/typesystem/spec/spec_helper.rb +52 -0
  206. data/projects/typesystem/spec/state_machine/callbacks_spec.rb +144 -0
  207. data/projects/typesystem/spec/state_machine/state_machine_spec.rb +224 -0
  208. data/projects/typesystem/spec/state_machine/target_attribute_spec.rb +46 -0
  209. data/projects/typesystem/spec/support/rubyprof.rb +32 -0
  210. data/projects/typesystem/spec/support/term_trap.rb +6 -0
  211. data/projects/typesystem/spec/type_declarations/attributes_spec.rb +14 -0
  212. data/projects/typesystem/spec/type_declarations/attributes_transformer_spec.rb +95 -0
  213. data/projects/typesystem/spec/type_declarations/dsl/attributes_spec.rb +107 -0
  214. data/projects/typesystem/spec/type_declarations/handlers/extend_registered_type_declaration_spec.rb +13 -0
  215. data/projects/typesystem/spec/type_declarations/sensitive_type_removers_spec.rb +210 -0
  216. data/projects/typesystem/spec/type_declarations/type_builder_spec.rb +47 -0
  217. data/projects/typesystem/spec/type_declarations/type_declaration_spec.rb +252 -0
  218. data/projects/typesystem/spec/type_declarations/type_declarations_spec.rb +11 -0
  219. data/projects/typesystem/spec/type_declarations/typed_transformer_spec.rb +65 -0
  220. data/projects/typesystem/spec/types/sensitive_spec.rb +36 -0
  221. data/projects/typesystem/spec/types/type_spec.rb +102 -0
  222. data/projects/typesystem/spec/value/caster_spec.rb +23 -0
  223. data/projects/typesystem/spec/value/processor/runner_spec.rb +34 -0
  224. data/projects/typesystem/spec/value/processor/selection_spec.rb +71 -0
  225. data/projects/typesystem/spec/value/processor_spec.rb +76 -0
  226. data/projects/typesystem/spec/value/transformer_spec.rb +27 -0
  227. data/version.rb +1 -1
  228. metadata +496 -365
  229. data/projects/callback/lib/foobara/callback.rb +0 -1
  230. data/projects/concerns/lib/foobara/concerns.rb +0 -1
  231. data/projects/delegate/lib/foobara/delegate.rb +0 -1
  232. data/projects/domain/src/domain_module_extension.rb +0 -558
  233. data/projects/domain/src/module_extension.rb +0 -116
  234. data/projects/entity/src/extensions/domain/domain_module_extension.rb +0 -15
  235. data/projects/enumerated/lib/foobara/enumerated.rb +0 -1
  236. data/projects/foobara/lib/foobara/all.rb +0 -48
  237. data/projects/in_memory_crud_driver_minimal/lib/foobara/in_memory_crud_driver_minimal.rb +0 -1
  238. data/projects/state_machine/lib/foobara/state_machine.rb +0 -1
  239. data/projects/value/lib/foobara/value.rb +0 -7
  240. data/projects/weak_object_set/lib/foobara/weak_object_set.rb +0 -3
  241. /data/{projects/foobara/lib → lib}/foobara.rb +0 -0
  242. /data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/aliases.rb +0 -0
  243. /data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/associations.rb +0 -0
  244. /data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/attributes.rb +0 -0
  245. /data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/equality.rb +0 -0
  246. /data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/initialization.rb +0 -0
  247. /data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/persistence.rb +0 -0
  248. /data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/reflection.rb +0 -0
  249. /data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/serialize.rb +0 -0
  250. /data/projects/{detached_entity → entities/projects/detached_entity}/src/detached_entity.rb +0 -0
  251. /data/projects/{detached_entity → entities/projects/detached_entity}/src/detached_entity_type.rb +0 -0
  252. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/builtin_types/detached_entity/casters/hash.rb +0 -0
  253. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/builtin_types/detached_entity/casters/primary_key.rb +0 -0
  254. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/builtin_types/detached_entity.rb +0 -0
  255. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration/attributes_handler_desugarizer.rb +0 -0
  256. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration/hash_desugarizer.rb +0 -0
  257. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration/model_class_desugarizer.rb +0 -0
  258. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration/primary_key_desugarizer.rb +0 -0
  259. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration/to_type_transformer.rb +0 -0
  260. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration/validate_primary_key_is_symbol.rb +0 -0
  261. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration/validate_primary_key_present.rb +0 -0
  262. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration/validate_primary_key_references_attribute.rb +0 -0
  263. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration.rb +0 -0
  264. /data/projects/{detached_entity → entities/projects/detached_entity}/src/remove_sensitive_values_transformer_extensions.rb +0 -0
  265. /data/projects/{detached_entity → entities/projects/detached_entity}/src/sensitive_type_removers/detached_entity.rb +0 -0
  266. /data/projects/{detached_entity → entities/projects/detached_entity}/src/sensitive_value_removers/detached_entity.rb +0 -0
  267. /data/projects/{entity → entities/projects/entity}/src/association_depth.rb +0 -0
  268. /data/projects/{entity → entities/projects/entity}/src/concerns/attributes.rb +0 -0
  269. /data/projects/{entity → entities/projects/entity}/src/concerns/initialization.rb +0 -0
  270. /data/projects/{entity → entities/projects/entity}/src/concerns/mutations.rb +0 -0
  271. /data/projects/{entity → entities/projects/entity}/src/concerns/persistence.rb +0 -0
  272. /data/projects/{entity → entities/projects/entity}/src/concerns/queries.rb +0 -0
  273. /data/projects/{entity → entities/projects/entity}/src/concerns/types.rb +0 -0
  274. /data/projects/{entity → entities/projects/entity}/src/entity.rb +0 -0
  275. /data/projects/{entity → entities/projects/entity}/src/extensions/builtin_types/entity/casters/hash.rb +0 -0
  276. /data/projects/{entity → entities/projects/entity}/src/extensions/builtin_types/entity/casters/primary_key.rb +0 -0
  277. /data/projects/{entity → entities/projects/entity}/src/extensions/builtin_types/entity/casters/record_from_closed_transaction.rb +0 -0
  278. /data/projects/{entity → entities/projects/entity}/src/extensions/builtin_types/entity/casters/record_from_current_transaction.rb +0 -0
  279. /data/projects/{entity → entities/projects/entity}/src/extensions/builtin_types/entity/validators/model_instance_is_valid.rb +0 -0
  280. /data/projects/{entity → entities/projects/entity}/src/extensions/builtin_types/entity.rb +0 -0
  281. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration/attributes_handler_desugarizer.rb +0 -0
  282. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration/hash_desugarizer.rb +0 -0
  283. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration/model_class_desugarizer.rb +0 -0
  284. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration/primary_key_desugarizer.rb +0 -0
  285. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration/to_type_transformer.rb +0 -0
  286. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration/validate_primary_key_is_symbol.rb +0 -0
  287. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration/validate_primary_key_present.rb +0 -0
  288. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration/validate_primary_key_references_attribute.rb +0 -0
  289. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration.rb +0 -0
  290. /data/projects/{entity → entities/projects/entity}/src/new_prepend.rb +0 -0
  291. /data/projects/{entity → entities/projects/entity}/src/sensitive_type_removers/entity.rb +0 -0
  292. /data/projects/{entity → entities/projects/entity}/src/sensitive_value_removers/entity.rb +0 -0
  293. /data/projects/{in_memory_crud_driver → entities/projects/in_memory_crud_driver}/src/in_memory.rb +0 -0
  294. /data/projects/{model → entities/projects/model}/src/concerns/aliases.rb +0 -0
  295. /data/projects/{model → entities/projects/model}/src/concerns/reflection.rb +0 -0
  296. /data/projects/{model → entities/projects/model}/src/extensions/builtin_types/model/casters/hash.rb +0 -0
  297. /data/projects/{model → entities/projects/model}/src/extensions/builtin_types/model/supported_transformers/mutable.rb +0 -0
  298. /data/projects/{model → entities/projects/model}/src/extensions/builtin_types/model/validators/model_instance_is_valid.rb +0 -0
  299. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/array_with_symbolic_elements.rb +0 -0
  300. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/attributes_handler_desugarizer.rb +0 -0
  301. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/delegates_desugarizer.rb +0 -0
  302. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/delegates_validator.rb +0 -0
  303. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/hash_desugarizer.rb +0 -0
  304. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/model_class_desugarizer.rb +0 -0
  305. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/move_private_from_element_types_to_root.rb +0 -0
  306. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/symbolize_private.rb +0 -0
  307. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/valid_attribute_names.rb +0 -0
  308. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration.rb +0 -0
  309. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/hash_desugarizer.rb +0 -0
  310. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/model_class_type_desugarizer.rb +0 -0
  311. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/mutable_validator.rb +0 -0
  312. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/normalize_mutable_attributes_desugarizer.rb +0 -0
  313. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/to_type_transformer.rb +0 -0
  314. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration.rb +0 -0
  315. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/registered_type_declaration/model_class_desugarizer.rb +0 -0
  316. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/lazy_element_types/model.rb +0 -0
  317. /data/projects/{model → entities/projects/model}/src/sensitive_type_removers/extended_model.rb +0 -0
  318. /data/projects/{model → entities/projects/model}/src/sensitive_type_removers/model.rb +0 -0
  319. /data/projects/{model → entities/projects/model}/src/sensitive_value_removers/model.rb +0 -0
  320. /data/projects/{model_attribute_helpers → entities/projects/model_attribute_helpers}/src/attribute_helpers.rb +0 -0
  321. /data/projects/{persistence → entities/projects/persistence}/src/entity_attributes_crud_driver.rb +0 -0
  322. /data/projects/{persistence → entities/projects/persistence}/src/entity_base/table.rb +0 -0
  323. /data/projects/{persistence → entities/projects/persistence}/src/entity_base/transaction/concerns/entity_callback_handling.rb +0 -0
  324. /data/projects/{persistence → entities/projects/persistence}/src/entity_base/transaction/concerns/state_transitions.rb +0 -0
  325. /data/projects/{persistence → entities/projects/persistence}/src/entity_base/transaction.rb +0 -0
  326. /data/projects/{persistence → entities/projects/persistence}/src/entity_base/transaction_table/concerns/queries.rb +0 -0
  327. /data/projects/{persistence → entities/projects/persistence}/src/entity_base.rb +0 -0
  328. /data/projects/{persistence → entities/projects/persistence}/src/persistence.rb +0 -0
  329. /data/projects/{weak_object_set → entities/projects/weak_object_set}/src/weak_object_set.rb +0 -0
  330. /data/projects/manifest/src/{foobara/manifest/domain.rb → domain.rb} +0 -0
  331. /data/projects/manifest/src/{foobara/manifest/entity.rb → entity.rb} +0 -0
  332. /data/projects/manifest/src/{foobara/manifest/error.rb → error.rb} +0 -0
  333. /data/projects/manifest/src/{foobara/manifest/organization.rb → organization.rb} +0 -0
  334. /data/projects/manifest/src/{foobara/manifest/processor.rb → processor.rb} +0 -0
  335. /data/projects/manifest/src/{foobara/manifest/processor_class.rb → processor_class.rb} +0 -0
  336. /data/projects/manifest/src/{foobara/manifest/root_manifest.rb → root_manifest.rb} +0 -0
  337. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/README.md +0 -0
  338. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/array/casters/arrayable.rb +0 -0
  339. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/array/supported_processors/element_type_declaration.rb +0 -0
  340. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/array/supported_validators/size.rb +0 -0
  341. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/associative_array/casters/array.rb +0 -0
  342. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/associative_array/supported_processors/key_type_declaration.rb +0 -0
  343. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/associative_array/supported_processors/value_type_declaration.rb +0 -0
  344. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/atomic_duck.rb +0 -0
  345. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/casters/array.rb +0 -0
  346. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/casters/hash.rb +0 -0
  347. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/supported_processors/element_type_declarations.rb +0 -0
  348. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/supported_transformers/defaults/type_declaration_extension/extend_attributes_type_declaration/desugarizers/move_defaults_from_element_types_to_root.rb +0 -0
  349. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/supported_transformers/defaults/type_declaration_extension/extend_attributes_type_declaration/desugarizers/symbolize_defaults.rb +0 -0
  350. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/supported_transformers/defaults/type_declaration_extension/extend_attributes_type_declaration/type_declaration_validators/hash_with_symbolic_keys.rb +0 -0
  351. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/supported_transformers/defaults/type_declaration_extension/extend_attributes_type_declaration/type_declaration_validators/valid_attribute_names.rb +0 -0
  352. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/supported_transformers/defaults.rb +0 -0
  353. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/supported_validators/required/type_declaration_extension/extend_attributes_type_declaration/desugarizers/alphabetize_required.rb +0 -0
  354. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/supported_validators/required/type_declaration_extension/extend_attributes_type_declaration/desugarizers/move_required_from_element_types_to_root.rb +0 -0
  355. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/supported_validators/required/type_declaration_extension/extend_attributes_type_declaration/type_declaration_validators/array_of_symbols.rb +0 -0
  356. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/supported_validators/required/type_declaration_extension/extend_attributes_type_declaration/type_declaration_validators/array_with_valid_attribute_names.rb +0 -0
  357. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/supported_validators/required.rb +0 -0
  358. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/transformers/remove_unexpected_attributes.rb +0 -0
  359. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/big_decimal/casters/integer.rb +0 -0
  360. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/big_decimal/casters/string.rb +0 -0
  361. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/boolean/casters/numeric.rb +0 -0
  362. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/boolean/casters/string_or_symbol.rb +0 -0
  363. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/date/casters/hash.rb +0 -0
  364. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/date/casters/string.rb +0 -0
  365. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/datetime/casters/date.rb +0 -0
  366. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/datetime/casters/hash.rb +0 -0
  367. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/datetime/casters/seconds_since_epoch.rb +0 -0
  368. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/datetime/casters/string.rb +0 -0
  369. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/duck/supported_casters/allow_nil.rb +0 -0
  370. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/duck/supported_validators/instance_of/type_declaration_extension/extend_registered_type_declaration/desugarizers/class_desugarizer.rb +0 -0
  371. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/duck/supported_validators/instance_of/type_declaration_extension/extend_registered_type_declaration/desugarizers/class_type_desugarizer.rb +0 -0
  372. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/duck/supported_validators/instance_of/type_declaration_extension/extend_registered_type_declaration/desugarizers/instance_of_class_desugarizer.rb +0 -0
  373. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/duck/supported_validators/instance_of/type_declaration_extension/extend_registered_type_declaration/desugarizers/instance_of_symbol_desugarizer.rb +0 -0
  374. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/duck/supported_validators/instance_of/type_declaration_extension/extend_registered_type_declaration/type_declaration_validators/is_valid_class.rb +0 -0
  375. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/duck/supported_validators/instance_of.rb +0 -0
  376. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/duck/supported_validators/one_of/type_declaration_extension/extend_registered_type_declaration/desugarizers/cast_one_of.rb +0 -0
  377. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/duck/supported_validators/one_of/type_declaration_extension/extend_registered_type_declaration/desugarizers/module_desugarizer.rb +0 -0
  378. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/duck/supported_validators/one_of.rb +0 -0
  379. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/duck.rb +0 -0
  380. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/duckture.rb +0 -0
  381. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/email/transformers/downcase.rb +0 -0
  382. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/email/validator_base.rb +0 -0
  383. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/float/casters/integer.rb +0 -0
  384. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/float/casters/string.rb +0 -0
  385. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/integer/casters/string.rb +0 -0
  386. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/number/supported_validators/max.rb +0 -0
  387. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/number/supported_validators/min.rb +0 -0
  388. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/string/casters/numeric.rb +0 -0
  389. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/string/casters/symbol.rb +0 -0
  390. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/string/supported_transformers/downcase.rb +0 -0
  391. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/string/supported_validators/matches.rb +0 -0
  392. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/string/supported_validators/max_length.rb +0 -0
  393. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/symbol/casters/string.rb +0 -0
  394. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/tuple/supported_processors/element_type_declarations/type_declaration_extension/extend_tuple_type_declaration/desugarizers/set_size.rb +0 -0
  395. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/tuple/supported_processors/element_type_declarations/type_declaration_extension/extend_tuple_type_declaration/type_declaration_validators/size_matches.rb +0 -0
  396. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/tuple/supported_processors/element_type_declarations.rb +0 -0
  397. /data/projects/{callback → typesystem/projects/callback}/src/block/after.rb +0 -0
  398. /data/projects/{callback → typesystem/projects/callback}/src/block/around.rb +0 -0
  399. /data/projects/{callback → typesystem/projects/callback}/src/block/before.rb +0 -0
  400. /data/projects/{callback → typesystem/projects/callback}/src/block/concerns/block_parameter_not_allowed.rb +0 -0
  401. /data/projects/{callback → typesystem/projects/callback}/src/block/concerns/block_parameter_required.rb +0 -0
  402. /data/projects/{callback → typesystem/projects/callback}/src/block/concerns/keyword_argumentable_block.rb +0 -0
  403. /data/projects/{callback → typesystem/projects/callback}/src/block/concerns/single_argument_block.rb +0 -0
  404. /data/projects/{callback → typesystem/projects/callback}/src/block/error.rb +0 -0
  405. /data/projects/{callback → typesystem/projects/callback}/src/block.rb +0 -0
  406. /data/projects/{callback → typesystem/projects/callback}/src/registry/base.rb +0 -0
  407. /data/projects/{callback → typesystem/projects/callback}/src/registry/chained_conditioned.rb +0 -0
  408. /data/projects/{callback → typesystem/projects/callback}/src/registry/chained_multiple_action.rb +0 -0
  409. /data/projects/{callback → typesystem/projects/callback}/src/registry/conditioned.rb +0 -0
  410. /data/projects/{callback → typesystem/projects/callback}/src/registry/joined_conditioned.rb +0 -0
  411. /data/projects/{callback → typesystem/projects/callback}/src/registry/multiple_action.rb +0 -0
  412. /data/projects/{callback → typesystem/projects/callback}/src/registry/single_action.rb +0 -0
  413. /data/projects/{callback → typesystem/projects/callback}/src/runner.rb +0 -0
  414. /data/projects/{common → typesystem/projects/common}/src/error_collection.rb +0 -0
  415. /data/projects/{common → typesystem/projects/common}/src/possible_error.rb +0 -0
  416. /data/projects/{common → typesystem/projects/common}/src/runtime_error.rb +0 -0
  417. /data/projects/{concerns → typesystem/projects/concerns}/src/concern.rb +0 -0
  418. /data/projects/{domain → typesystem/projects/domain}/src/organization.rb +0 -0
  419. /data/projects/{domain → typesystem/projects/domain}/src/organization_module_extension.rb +0 -0
  420. /data/projects/{enumerated → typesystem/projects/enumerated}/src/enumerated.rb +0 -0
  421. /data/projects/{enumerated → typesystem/projects/enumerated}/src/values.rb +0 -0
  422. /data/projects/{namespace → typesystem/projects/namespace}/src/ambiguous_registry.rb +0 -0
  423. /data/projects/{namespace → typesystem/projects/namespace}/src/base_registry.rb +0 -0
  424. /data/projects/{namespace → typesystem/projects/namespace}/src/extensions/module.rb +0 -0
  425. /data/projects/{namespace → typesystem/projects/namespace}/src/namespace/lookup_mode.rb +0 -0
  426. /data/projects/{namespace → typesystem/projects/namespace}/src/prefixless_registry.rb +0 -0
  427. /data/projects/{namespace → typesystem/projects/namespace}/src/scoped.rb +0 -0
  428. /data/projects/{namespace → typesystem/projects/namespace}/src/unambiguous_registry.rb +0 -0
  429. /data/projects/{state_machine → typesystem/projects/state_machine}/src/log_entry.rb +0 -0
  430. /data/projects/{state_machine → typesystem/projects/state_machine}/src/state_machine.rb +0 -0
  431. /data/projects/{state_machine → typesystem/projects/state_machine}/src/transitions.rb +0 -0
  432. /data/projects/{state_machine → typesystem/projects/state_machine}/src/validations.rb +0 -0
  433. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/attributes.rb +0 -0
  434. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/attributes_transformers/from_yaml.rb +0 -0
  435. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/attributes_transformers/only.rb +0 -0
  436. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/attributes_transformers/reject.rb +0 -0
  437. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/attributes_transformers/set.rb +0 -0
  438. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/attributes_transformers.rb +0 -0
  439. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/caster.rb +0 -0
  440. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/desugarizer.rb +0 -0
  441. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/desugarizer_pipeline.rb +0 -0
  442. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/element_processor.rb +0 -0
  443. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_array_type_declaration/array_desugarizer.rb +0 -0
  444. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_array_type_declaration/element_type_declaration_desugarizer.rb +0 -0
  445. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_array_type_declaration/to_type_transformer.rb +0 -0
  446. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_array_type_declaration/type_set_to_array_desugarizer.rb +0 -0
  447. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_array_type_declaration.rb +0 -0
  448. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_associative_array_type_declaration/key_type_declaration_desugarizer.rb +0 -0
  449. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_associative_array_type_declaration/to_type_transformer.rb +0 -0
  450. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_associative_array_type_declaration/value_type_declaration_desugarizer.rb +0 -0
  451. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_associative_array_type_declaration.rb +0 -0
  452. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_attributes_type_declaration/dsl_desugarizer.rb +0 -0
  453. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_attributes_type_declaration/element_type_declarations_desugarizer.rb +0 -0
  454. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_attributes_type_declaration/hash_desugarizer.rb +0 -0
  455. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_attributes_type_declaration/to_type_transformer.rb +0 -0
  456. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_attributes_type_declaration.rb +0 -0
  457. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_registered_type_declaration/to_type_transformer.rb +0 -0
  458. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_registered_type_declaration.rb +0 -0
  459. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_tuple_type_declaration/array_desugarizer.rb +0 -0
  460. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_tuple_type_declaration/to_type_transformer.rb +0 -0
  461. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_tuple_type_declaration.rb +0 -0
  462. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/registered_type_declaration/to_type_transformer.rb +0 -0
  463. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/registered_type_declaration.rb +0 -0
  464. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/lazy_element_types/attributes.rb +0 -0
  465. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/lazy_element_types/hash.rb +0 -0
  466. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/lazy_element_types/tuple.rb +0 -0
  467. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/processor.rb +0 -0
  468. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/remove_sensitive_values_transformer.rb +0 -0
  469. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/sensitive_type_remover.rb +0 -0
  470. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/sensitive_type_removers/array.rb +0 -0
  471. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/sensitive_type_removers/attributes.rb +0 -0
  472. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/sensitive_value_removers/array.rb +0 -0
  473. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/sensitive_value_removers/attributes.rb +0 -0
  474. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/to_type_transformer.rb +0 -0
  475. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/transformer.rb +0 -0
  476. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/type_builder.rb +0 -0
  477. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/type_declaration_error.rb +0 -0
  478. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/type_declaration_handler_registry.rb +0 -0
  479. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/type_declaration_validator.rb +0 -0
  480. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/type_declarations.rb +0 -0
  481. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/validator.rb +0 -0
  482. /data/projects/{types → typesystem/projects/types}/src/element_processor.rb +0 -0
  483. /data/projects/{types → typesystem/projects/types}/src/extensions/error.rb +0 -0
  484. /data/projects/{types → typesystem/projects/types}/src/type/concerns/reflection.rb +0 -0
  485. /data/projects/{types → typesystem/projects/types}/src/types.rb +0 -0
  486. /data/projects/{value → typesystem/projects/value}/src/caster.rb +0 -0
  487. /data/projects/{value → typesystem/projects/value}/src/data_error.rb +0 -0
  488. /data/projects/{value → typesystem/projects/value}/src/mutator.rb +0 -0
  489. /data/projects/{value → typesystem/projects/value}/src/processor/casting.rb +0 -0
  490. /data/projects/{value → typesystem/projects/value}/src/processor/multi.rb +0 -0
  491. /data/projects/{value → typesystem/projects/value}/src/processor/pipeline.rb +0 -0
  492. /data/projects/{value → typesystem/projects/value}/src/processor/runner.rb +0 -0
  493. /data/projects/{value → typesystem/projects/value}/src/processor/selection.rb +0 -0
  494. /data/projects/{value → typesystem/projects/value}/src/transformer.rb +0 -0
  495. /data/projects/{value → typesystem/projects/value}/src/validator.rb +0 -0
@@ -1 +0,0 @@
1
- module Foobara::Callback; end
@@ -1 +0,0 @@
1
- module Foobara::Concerns; end
@@ -1 +0,0 @@
1
- module Foobara::Delegate; end
@@ -1,558 +0,0 @@
1
- module Foobara
2
- module Domain
3
- class NoSuchDomain < StandardError; end
4
- class AlreadyRegisteredError < StandardError; end
5
- class CannotSetTypeConstantError < StandardError; end
6
-
7
- class << self
8
- def global
9
- GlobalDomain
10
- end
11
- end
12
-
13
- module DomainModuleExtension
14
- class << self
15
- # TODO: rename this
16
- def _copy_constants(old_mod, new_class)
17
- old_mod.constants.each do |const_name|
18
- value = old_mod.const_get(const_name)
19
- if new_class.const_defined?(const_name)
20
- # TODO: figure out how to test this path. Seems to occur when models are nested and loaded
21
- # remotely in a certain order
22
- # :nocov:
23
- to_replace = new_class.const_get(const_name)
24
- if to_replace != value
25
- new_class.send(:remove_const, const_name)
26
- new_class.const_set(const_name, value)
27
- end
28
- # :nocov:
29
- else
30
- new_class.const_set(const_name, value)
31
- end
32
- end
33
-
34
- lower_case_constants = old_mod.instance_variable_get(:@foobara_lowercase_constants)
35
-
36
- if lower_case_constants && !lower_case_constants.empty?
37
- lower_case_constants&.each do |lower_case_constant|
38
- new_class.singleton_class.define_method lower_case_constant do
39
- old_mod.send(lower_case_constant)
40
- end
41
- end
42
-
43
- new_lowercase_constants = new_class.instance_variable_get(:@foobara_lowercase_constants) || []
44
- new_lowercase_constants += lower_case_constants
45
-
46
- new_class.instance_variable_set(:@foobara_lowercase_constants, new_lowercase_constants)
47
- end
48
- end
49
- end
50
-
51
- include Concern
52
- include Manifestable
53
-
54
- module ClassMethods
55
- attr_writer :foobara_domain_name, :foobara_full_domain_name
56
-
57
- def foobara_unregister(scoped)
58
- scoped = to_scoped(scoped)
59
-
60
- if scoped.is_a?(Foobara::Types::Type)
61
- parent_mod = nil
62
-
63
- if const_defined?(:Types, false)
64
- parent_path = ["Foobara::GlobalDomain"]
65
- unless scoped.type_symbol.to_s.start_with?("Types::")
66
- parent_path << "Types"
67
- end
68
- parent_path += scoped.type_symbol.to_s.split("::")[..-2]
69
-
70
- parent_name = parent_path.join("::")
71
- child_name = [*parent_path, scoped.type_symbol.to_s.split("::").last].join("::")
72
- removed = false
73
-
74
- if Object.const_defined?(parent_name)
75
- parent_mod = Object.const_get(parent_name)
76
-
77
- if scoped.scoped_short_name =~ /^[a-z]/
78
- lower_case_constants = parent_mod.instance_variable_get(:@foobara_lowercase_constants)
79
-
80
- if lower_case_constants&.include?(scoped.scoped_short_name)
81
- parent_mod.singleton_class.undef_method scoped.scoped_short_name
82
- lower_case_constants.delete(scoped.scoped_short_name)
83
- end
84
-
85
- removed = true
86
- elsif parent_mod.const_defined?(scoped.scoped_short_name, false)
87
- parent_mod.send(:remove_const, scoped.scoped_short_name)
88
- removed = true
89
- end
90
- end
91
-
92
- if removed
93
- child_name = parent_name
94
-
95
- while child_name
96
- child = Object.const_get(child_name)
97
-
98
- break if child.foobara_domain?
99
-
100
- break if child.foobara_organization?
101
-
102
- # TODO: unclear why we need this check, hmmm, figure it out and document it (or delete if not needed)
103
- break if child.constants(false).any? do |constant|
104
- # TODO: a clue: this stopped being entered by the test suite after deleting GlobalDomain::Types
105
- # in .reset_alls hmmmmmm...
106
- # :nocov:
107
- value = child.const_get(constant)
108
-
109
- # TODO: can we make this not coupled to model project??
110
- value.is_a?(Types::Type) || (value.is_a?(::Class) && value < Foobara::Model)
111
- # :nocov:
112
- end
113
-
114
- lower_case_constants = child.instance_variable_get(:@foobara_lowercase_constants)
115
- break if lower_case_constants && !lower_case_constants.empty?
116
-
117
- parent_name = Util.parent_module_name_for(child_name)
118
- break unless Object.const_defined?(parent_name)
119
-
120
- parent = Object.const_get(parent_name)
121
-
122
- child_sym = Util.non_full_name(child).to_sym
123
- parent.send(:remove_const, child_sym)
124
-
125
- child_name = parent_name
126
- end
127
- end
128
- end
129
- end
130
-
131
- super
132
- end
133
-
134
- def foobara_domain_map(*args, to: nil, strict: false, criteria: nil, should_raise: false, **opts)
135
- case args.size
136
- when 1
137
- value = args.first
138
- when 0
139
- if opts.empty?
140
- # :nocov:
141
- raise ArgumentError, "Expected at least one argument"
142
- # :nocov:
143
- else
144
- value = opts
145
- opts = {}
146
- end
147
- else
148
- # :nocov:
149
- raise ArgumentError, "Expected 1 argument but got #{args.size}"
150
- # :nocov:
151
- end
152
-
153
- invalid_keys = opts.keys - [:from]
154
-
155
- if invalid_keys.any?
156
- # :nocov:
157
- raise ArgumentError, "Invalid options: #{invalid_keys.join(", ")}"
158
- # :nocov:
159
- end
160
-
161
- from = if opts.key?(:from)
162
- opts[:from]
163
- else
164
- value
165
- end
166
-
167
- mapper = lookup_matching_domain_mapper(from:, to:, criteria:, strict:)
168
-
169
- if mapper
170
- mapper.map!(value)
171
- elsif should_raise
172
- raise Foobara::DomainMapperLookups::NoDomainMapperFoundError.new(from, to, value:)
173
- end
174
- end
175
-
176
- def foobara_domain_map!(*, **, &)
177
- foobara_domain_map(*, should_raise: true, **, &)
178
- end
179
-
180
- def foobara_domain_name
181
- # TODO: does this work properly with prefixes?
182
- @foobara_domain_name || scoped_name
183
- end
184
-
185
- def foobara_full_domain_name
186
- @foobara_full_domain_name || scoped_full_name
187
- end
188
-
189
- def foobara_full_domain_symbol
190
- Util.underscore_sym(foobara_full_domain_name)
191
- end
192
-
193
- def foobara_organization_name
194
- foobara_organization&.foobara_organization_name
195
- end
196
-
197
- def foobara_full_organization_name
198
- foobara_organization&.foobara_full_organization_name
199
- end
200
-
201
- def foobara_organization
202
- parent = foobara_parent_namespace
203
-
204
- while parent
205
- return parent if parent&.foobara_organization?
206
-
207
- # TODO: we really should test this path
208
- # :nocov:
209
- parent = parent.foobara_parent_namespace
210
- # :nocov:
211
- end || GlobalOrganization
212
- end
213
-
214
- def foobara_domain?
215
- true
216
- end
217
-
218
- # TODO: kill this off
219
- def foobara_type_builder
220
- @foobara_type_builder ||= begin
221
- accesses = self == GlobalDomain ? [] : GlobalDomain.foobara_type_builder
222
- TypeDeclarations::TypeBuilder.new(foobara_full_domain_name, accesses:)
223
- end
224
- end
225
-
226
- def foobara_type_from_declaration(*args, **opts, &block)
227
- if opts.empty? && block.nil? && args.size == 1 && args.first.is_a?(Types::Type)
228
- return args.first
229
- end
230
-
231
- Foobara::Namespace.use self do
232
- foobara_type_builder.type_for_declaration(*args, **opts, &block)
233
- end
234
- end
235
-
236
- def foobara_type_from_strict_stringified_declaration(...)
237
- Foobara::Namespace.use self do
238
- foobara_type_builder.type_for_strict_stringified_declaration(...)
239
- end
240
- end
241
-
242
- def foobara_type_from_strict_declaration(...)
243
- Foobara::Namespace.use self do
244
- foobara_type_builder.type_for_strict_declaration(...)
245
- end
246
- end
247
-
248
- def foobara_command_classes
249
- foobara_all_command(mode: Namespace::LookupMode::DIRECT)
250
- end
251
-
252
- def foobara_register_type(type_symbol, *type_declaration_bits, &block)
253
- type = if block.nil? && type_declaration_bits.size == 1 && type_declaration_bits.first.is_a?(Types::Type)
254
- type_declaration_bits.first
255
- else
256
- foobara_type_from_declaration(*type_declaration_bits, &block)
257
- end
258
-
259
- new_scoped_path, new_type_symbol = if type_symbol.is_a?(::Array)
260
- [type_symbol, type_symbol.join("::").to_sym]
261
- else
262
- type_symbol = type_symbol.to_s if type_symbol.is_a?(::Symbol)
263
-
264
- [type_symbol.split("::"), type_symbol.to_sym]
265
- end
266
-
267
- if type.scoped_path_set? && type.registered? && foobara_registered?(type, mode: Namespace::LookupMode::DIRECT)
268
- old_symbol = type.type_symbol
269
- old_type = foobara_lookup_type(old_symbol, mode: Namespace::LookupMode::DIRECT)
270
-
271
- if old_symbol != new_type_symbol
272
- foobara_unregister(type)
273
-
274
- type.scoped_path = new_scoped_path
275
- type.type_symbol = new_type_symbol
276
-
277
- foobara_register(type)
278
- # :nocov:
279
- elsif old_type != type
280
- # TODO: delete this check if it's not really helping
281
-
282
- raise "Didn't expect to find an old type"
283
- # :nocov:
284
- end
285
- else
286
- type.scoped_path = new_scoped_path
287
- type.type_symbol = new_type_symbol
288
-
289
- old_type = foobara_lookup_type(new_type_symbol, mode: Namespace::LookupMode::DIRECT)
290
-
291
- if old_type && old_type != type
292
- # TODO: delete this check if it's not really helping
293
- # :nocov:
294
- raise "Didn't expect to find an old type"
295
- # :nocov:
296
- end
297
-
298
- if foobara_registered?(type, mode: Namespace::LookupMode::DIRECT)
299
- # TODO: delete this check if it's not really helping
300
- # :nocov:
301
- raise "Already registered: #{type.inspect}"
302
- # :nocov:
303
- end
304
-
305
- foobara_register(type)
306
- end
307
-
308
- _set_type_constant(type)
309
-
310
- type
311
- end
312
-
313
- def foobara_register_and_deanonymize_entity(name, *, &)
314
- entity_class = foobara_register_entity(name, *, &)
315
- Foobara::Model.deanonymize_class(entity_class)
316
- end
317
-
318
- # TODO: kill this off
319
- def foobara_register_entity(name, *args, &block)
320
- # TODO: introduce a Namespace#scope method to simplify this a bit
321
- Foobara::Namespace.use self do
322
- if block
323
- args = [
324
- TypeDeclarations::Dsl::Attributes.to_declaration(&block).declaration_data,
325
- *args
326
- ]
327
- end
328
-
329
- attributes_type_declaration, *args = args
330
-
331
- model_base_class, description = case args.size
332
- when 0
333
- []
334
- when 1, 2
335
- arg, other = args
336
-
337
- if args.first.is_a?(::String)
338
- [other, arg]
339
- else
340
- args
341
- end
342
- else
343
- # :nocov:
344
- raise ArgumentError, "Too many arguments"
345
- # :nocov:
346
- end
347
-
348
- if model_base_class
349
- attributes_type_declaration = TypeDeclarations::Attributes.merge(
350
- model_base_class.attributes_type.declaration_data,
351
- attributes_type_declaration
352
- )
353
- end
354
-
355
- handler = foobara_type_builder.handler_for_class(
356
- Foobara::TypeDeclarations::Handlers::ExtendAttributesTypeDeclaration
357
- )
358
-
359
- attributes_type = handler.type_for_declaration(attributes_type_declaration)
360
-
361
- # TODO: reuse the model_base_class primary key if it has one...
362
- primary_key = attributes_type.element_types.keys.first
363
-
364
- model_module = unless scoped_full_path.empty?
365
- scoped_full_name
366
- end
367
-
368
- declaration = TypeDeclaration.new(
369
- Util.remove_blank(
370
- type: :entity,
371
- name:,
372
- model_base_class:,
373
- model_module:,
374
- attributes_declaration: attributes_type_declaration,
375
- primary_key:,
376
- description:
377
- )
378
- )
379
-
380
- declaration.is_absolutified = true
381
- declaration.is_duped = true
382
-
383
- entity_type = foobara_type_builder.type_for_declaration(declaration)
384
-
385
- entity_type.target_class
386
- end
387
- end
388
-
389
- def foobara_register_and_deanonymize_entities(entity_names_to_attributes)
390
- entities = []
391
-
392
- entity_names_to_attributes.each_pair do |entity_name, attributes_declaration|
393
- entities << foobara_register_and_deanonymize_entity(entity_name, attributes_declaration)
394
- end
395
-
396
- entities
397
- end
398
-
399
- def foobara_register_entities(entity_names_to_attributes)
400
- entities = []
401
-
402
- entity_names_to_attributes.each_pair do |entity_name, attributes_type_declaration|
403
- entities << foobara_register_entity(entity_name, attributes_type_declaration)
404
- end
405
-
406
- entities
407
- end
408
-
409
- def foobara_can_call_subcommands_from?(other_domain)
410
- other_domain = Domain.to_domain(other_domain)
411
- other_domain == self || self == GlobalDomain || foobara_depends_on?(other_domain)
412
- end
413
-
414
- def foobara_depends_on?(other_domain)
415
- other_domain = Domain.to_domain(other_domain)
416
- other_domain == GlobalDomain || foobara_depends_on.include?(other_domain.foobara_full_domain_name)
417
- end
418
-
419
- def foobara_depends_on(*domains)
420
- if domains.empty?
421
- return @foobara_depends_on ||= Set.new
422
- end
423
-
424
- if domains.length == 1
425
- domains = Util.array(domains.first)
426
- end
427
-
428
- domains.each do |domain|
429
- # It very likely could be a module extended with domain methods...
430
- domain = Domain.to_domain(domain)
431
- domain_name = domain.foobara_full_domain_name
432
-
433
- if foobara_depends_on.include?(domain_name)
434
- # :nocov:
435
- raise AlreadyRegisteredDomainDependency, "Already registered #{domain_name} as a dependency of #{self}"
436
- # :nocov:
437
- end
438
-
439
- foobara_depends_on_namespaces << domain
440
- foobara_type_builder.accesses << domain.foobara_type_builder
441
-
442
- lru_cache.reset!
443
- foobara_depends_on << domain_name
444
- end
445
- end
446
-
447
- def foobara_manifest
448
- to_include = TypeDeclarations.foobara_manifest_context_to_include
449
-
450
- depends_on = foobara_depends_on.map do |name|
451
- domain = Domain.to_domain(name)
452
- if to_include
453
- to_include << domain
454
- end
455
- domain.foobara_manifest_reference
456
- end.sort
457
-
458
- commands = foobara_all_command(mode: Namespace::LookupMode::DIRECT).map do |command_class|
459
- if to_include
460
- to_include << command_class
461
- end
462
- command_class.foobara_manifest_reference
463
- end.sort
464
-
465
- types = foobara_all_type(mode: Namespace::LookupMode::DIRECT).map do |type|
466
- if to_include
467
- to_include << type
468
- end
469
- type.foobara_manifest_reference
470
- end.sort
471
-
472
- manifest = super.merge(commands:, types:)
473
-
474
- unless depends_on.empty?
475
- manifest[:depends_on] = depends_on
476
- end
477
-
478
- manifest
479
- end
480
-
481
- def _set_type_constant(type)
482
- domain = if scoped_full_path.empty?
483
- GlobalDomain
484
- else
485
- self
486
- end
487
-
488
- path = type.scoped_path
489
- if path.first == "Types"
490
- path = path[1..]
491
- end
492
-
493
- types_mod = if domain.const_defined?(:Types)
494
- domain.const_get(:Types)
495
- else
496
- domain.const_set(:Types, Module.new)
497
- end
498
-
499
- if type.scoped_prefix
500
- const_name = [types_mod.name, *path[0..-2]].join("::")
501
- types_mod = Util.make_module_p(const_name, tag: true)
502
- end
503
-
504
- # TODO: dry this up
505
- if type.scoped_short_name =~ /\A[a-z]/
506
- unless types_mod.respond_to?(type.scoped_short_name)
507
- types_mod.singleton_class.define_method type.scoped_short_name do
508
- type
509
- end
510
-
511
- unless types_mod.instance_variable_defined?(:@foobara_lowercase_constants)
512
- types_mod.instance_variable_set(:@foobara_lowercase_constants, [])
513
- end
514
-
515
- types_mod.instance_variable_get(:@foobara_lowercase_constants) << type.scoped_short_name
516
- end
517
- elsif types_mod.const_defined?(type.scoped_short_name, false)
518
- existing_value = types_mod.const_get(type.scoped_short_name)
519
- existing_value_type = if existing_value.is_a?(::Class) && existing_value < Foobara::Model
520
- # TODO: test this code path
521
- # :nocov:
522
- existing_value.model_type
523
- # :nocov:
524
- else
525
- existing_value
526
- end
527
-
528
- if existing_value_type != type
529
- if existing_value.is_a?(::Module) && !existing_value.is_a?(::Class) &&
530
- existing_value.instance_variable_get(:@foobara_created_via_make_class) &&
531
- # not allowing lower-case "constants" to be namespaces
532
- type.extends?("::model")
533
-
534
- types_mod.send(:remove_const, type.scoped_short_name)
535
- types_mod.const_set(type.scoped_short_name, type.target_class)
536
-
537
- DomainModuleExtension._copy_constants(existing_value, type.target_class)
538
- else
539
- # :nocov:
540
- raise CannotSetTypeConstantError,
541
- "Already defined constant #{types_mod.name}::#{type.scoped_short_name}"
542
- # :nocov:
543
- end
544
- end
545
- else
546
- symbol = type.scoped_short_name
547
-
548
- if type.extends?("::model")
549
- type = type.target_class
550
- end
551
-
552
- types_mod.const_set(symbol, type)
553
- end
554
- end
555
- end
556
- end
557
- end
558
- end
@@ -1,116 +0,0 @@
1
- require_relative "organization_module_extension"
2
- require_relative "domain_module_extension"
3
-
4
- module Foobara
5
- module Domain
6
- # TODO: should we just couple domain project and commands project to simplify this connection?
7
- # TODO: move this stuff to extensions/ directory
8
- module ModuleExtension
9
- class CannotBeOrganizationAndDomainAtSameTime < StandardError; end
10
-
11
- def foobara_domain!
12
- if foobara_organization?
13
- # :nocov:
14
- raise CannotBeOrganizationAndDomainAtSameTime
15
- # :nocov:
16
- end
17
-
18
- unless is_a?(Namespace::IsNamespace)
19
- foobara_namespace!
20
- foobara_autoset_namespace!(default_namespace: Foobara::GlobalOrganization)
21
- foobara_autoset_scoped_path!
22
-
23
- foobara_parent_namespace.foobara_register(self)
24
- end
25
-
26
- include(DomainModuleExtension)
27
-
28
- children = foobara_children
29
- children = children.sort_by { |child| child.scoped_path.size }
30
-
31
- # see if we are upgrading from prefix to domain and copy over types to Types module
32
- children.each do |child|
33
- next unless child.is_a?(Types::Type)
34
-
35
- types_mod_path = scoped_full_path.dup
36
- unless child.scoped_path.first == "Types"
37
- types_mod_path << "Types"
38
- end
39
-
40
- types_mod_path += child.scoped_path[..-2]
41
- types_mod = Util.make_module_p(types_mod_path.join("::"))
42
-
43
- # TODO: dry this up
44
- # TODO: this doesn't handle a type nested under a lower-case type for now
45
- if child.scoped_short_name =~ /^[a-z]/
46
- unless types_mod.respond_to?(child.scoped_short_name)
47
- types_mod.singleton_class.define_method child.scoped_short_name do
48
- child
49
- end
50
-
51
- unless types_mod.instance_variable_defined?(:@foobara_lowercase_constants)
52
- # TODO: test this path or delete it if unreachable
53
- # :nocov:
54
- types_mod.instance_variable_set(:@foobara_lowercase_constants, [])
55
- # :nocov:
56
- end
57
-
58
- types_mod.instance_variable_get(:@foobara_lowercase_constants) << child.scoped_short_name
59
- end
60
- else
61
- value = if types_mod.const_defined?(child.scoped_short_name, false)
62
- # TODO: test this path or delete it if unreachable
63
- # :nocov:
64
- types_mod.const_get(child.scoped_short_name, false)
65
- # :nocov:
66
- end
67
-
68
- if value != child
69
- types_mod.send(:remove_const, child.scoped_short_name) if value
70
- # TODO: can we decouple this from the model project?
71
- new_value = if child.extends?("::model")
72
- child.target_class
73
- else
74
- # TODO: test this path or delete it if unreachable
75
- # :nocov:
76
- child
77
- # :nocov:
78
- end
79
- types_mod.const_set(child.scoped_short_name, new_value)
80
- end
81
- end
82
- end
83
- end
84
-
85
- def foobara_organization!
86
- if foobara_domain?
87
- # :nocov:
88
- raise CannotBeOrganizationAndDomainAtSameTime
89
- # :nocov:
90
- end
91
-
92
- include(OrganizationModuleExtension)
93
-
94
- unless is_a?(Namespace::IsNamespace)
95
- foobara_namespace!
96
- self.scoped_namespace = Namespace.global
97
- foobara_autoset_scoped_path!(make_top_level: true)
98
-
99
- foobara_parent_namespace.foobara_register(self)
100
- end
101
- end
102
-
103
- def foobara_domain?
104
- false
105
- end
106
-
107
- def foobara_organization?
108
- false
109
- end
110
- end
111
- end
112
- end
113
-
114
- Module.include(Foobara::Domain::ModuleExtension)
115
-
116
- Foobara.foobara_organization!
@@ -1,15 +0,0 @@
1
- module Foobara
2
- module Domain
3
- module DomainModuleExtension
4
- module ClassMethods
5
- attr_reader :foobara_default_entity_base
6
-
7
- def foobara_set_entity_base(*, name: nil, table_prefix: nil)
8
- name ||= Util.underscore(scoped_full_name).gsub("::", "_")
9
- base = Persistence.register_base(*, name:, table_prefix:)
10
- @foobara_default_entity_base = base
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1 +0,0 @@
1
- module Foobara::Enumerated; end