foobara 0.2.7 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/README.md +35 -118
  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/namespace.rb +0 -2
  7. data/projects/command/src/command_pattern_implementation/concerns/reflection.rb +0 -2
  8. data/projects/command/src/command_pattern_implementation/concerns/subcommands.rb +3 -1
  9. data/projects/command/src/command_pattern_implementation/concerns/transactions.rb +2 -0
  10. data/projects/command/src/extensions/domain/domain_module_extension.rb +16 -0
  11. data/projects/command/src/extensions/domain/domain_module_extension_extension.rb +22 -0
  12. data/projects/command/src/extensions/foobara.rb +7 -0
  13. data/projects/command_connectors/Guardfile +6 -0
  14. data/projects/command_connectors/lib/foobara/command_connectors.rb +1 -1
  15. data/projects/command_connectors/spec/ambiguous_lookups_spec.rb +143 -0
  16. data/projects/command_connectors/spec/command_connector_spec.rb +2443 -0
  17. data/projects/command_connectors/spec/command_registry_spec.rb +9 -0
  18. data/projects/command_connectors/spec/commands/describe_spec.rb +83 -0
  19. data/projects/command_connectors/spec/commands/ping_spec.rb +14 -0
  20. data/projects/command_connectors/spec/commands/query_git_commit_info_spec.rb +55 -0
  21. data/projects/command_connectors/spec/fixtures/command_connectors/manifest_with_errors_with_missing_command_parents.yaml +1662 -0
  22. data/projects/command_connectors/spec/not_found_error_spec.rb +17 -0
  23. data/projects/command_connectors/spec/pre_commit_transformers/load_atoms_pre_commit_transformer_spec.rb +105 -0
  24. data/projects/command_connectors/spec/request_spec.rb +95 -0
  25. data/projects/command_connectors/spec/serializer_spec.rb +9 -0
  26. data/projects/command_connectors/spec/serializers/aggregate_serializer_spec.rb +45 -0
  27. data/projects/command_connectors/spec/serializers/atomic_serializer_spec.rb +68 -0
  28. data/projects/command_connectors/spec/serializers/entities_to_primary_keys_serializer_spec.rb +36 -0
  29. data/projects/command_connectors/spec/serializers/json_serializer_spec.rb +22 -0
  30. data/projects/command_connectors/spec/serializers/noop_serializer_spec.rb +22 -0
  31. data/projects/command_connectors/spec/serializers/yaml_serializer_spec.rb +22 -0
  32. data/projects/command_connectors/spec/spec_helper.rb +51 -0
  33. data/projects/command_connectors/spec/support/rubyprof.rb +32 -0
  34. data/projects/command_connectors/spec/support/term_trap.rb +6 -0
  35. data/projects/command_connectors/spec/transformers/entity_to_primary_key_inputs_transformer_spec.rb +119 -0
  36. data/projects/command_connectors/src/command_connector/commands/describe.rb +4 -2
  37. data/projects/command_connectors/src/command_connector/concerns/reflection.rb +187 -0
  38. data/projects/command_connectors/src/command_connector.rb +139 -264
  39. data/projects/command_connectors/src/command_registry/exposed_command.rb +6 -4
  40. data/projects/command_connectors/src/command_registry.rb +50 -48
  41. data/projects/command_connectors/src/transformed_command.rb +166 -114
  42. data/projects/command_connectors/src/transformers/load_atoms_transformer.rb +2 -0
  43. data/projects/command_connectors/src/transformers/load_delegated_attributes_entities_pre_commit_transformer.rb +2 -0
  44. data/projects/domain_mapper/lib/foobara/domain_mapper.rb +4 -0
  45. data/projects/domain_mapper/src/domain_mapper.rb +2 -0
  46. data/projects/{detached_entity → entities/projects/detached_entity}/lib/foobara/detached_entity.rb +4 -0
  47. data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/primary_key.rb +3 -1
  48. data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/types.rb +9 -1
  49. data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/builtin_types/detached_entity/validators/model_instance_is_valid.rb +1 -1
  50. data/projects/{entity → entities/projects/entity}/lib/foobara/entity.rb +4 -0
  51. data/projects/{entity → entities/projects/entity}/src/concerns/callbacks.rb +2 -0
  52. data/projects/{entity → entities/projects/entity}/src/concerns/transactions.rb +1 -5
  53. data/projects/entities/projects/entity/src/extensions/domain/domain_module_extension.rb +111 -0
  54. data/projects/{entity → entities/projects/entity}/src/not_found_error.rb +11 -1
  55. data/projects/{in_memory_crud_driver → entities/projects/in_memory_crud_driver}/lib/foobara/in_memory_crud_driver.rb +4 -0
  56. data/projects/entities/projects/in_memory_crud_driver_minimal/lib/foobara/in_memory_crud_driver_minimal.rb +6 -0
  57. data/projects/{in_memory_crud_driver_minimal → entities/projects/in_memory_crud_driver_minimal}/src/in_memory_minimal.rb +6 -4
  58. data/projects/{model → entities/projects/model}/lib/foobara/model.rb +4 -0
  59. data/projects/{model → entities/projects/model}/src/concerns/classes.rb +1 -1
  60. data/projects/{model → entities/projects/model}/src/concerns/types.rb +4 -2
  61. data/projects/entities/projects/model/src/extensions/domain/module_extension.rb +20 -0
  62. data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/to_type_transformer.rb +8 -3
  63. data/projects/{model → entities/projects/model}/src/model.rb +25 -1
  64. data/projects/{model_attribute_helpers → entities/projects/model_attribute_helpers}/lib/foobara/model_attribute_helpers.rb +2 -0
  65. data/projects/{model_attribute_helpers → entities/projects/model_attribute_helpers}/src/attribute_helper_aliases.rb +1 -1
  66. data/projects/{model_attribute_helpers → entities/projects/model_attribute_helpers}/src/attribute_helpers.rb +4 -4
  67. data/projects/{nested_transactionable → entities/projects/nested_transactionable}/lib/foobara/nested_transactionable.rb +2 -2
  68. data/projects/{persistence → entities/projects/persistence}/lib/foobara/persistence.rb +4 -0
  69. data/projects/{persistence → entities/projects/persistence}/src/entity_base/transaction/concerns/transaction_tracking.rb +2 -0
  70. data/projects/{persistence → entities/projects/persistence}/src/entity_base/transaction/state_machine.rb +2 -0
  71. data/projects/{persistence → entities/projects/persistence}/src/entity_base/transaction_table/concerns/record_tracking.rb +2 -0
  72. data/projects/{persistence → entities/projects/persistence}/src/entity_base/transaction_table.rb +2 -2
  73. data/projects/entities/projects/weak_object_set/lib/foobara/weak_object_set.rb +6 -0
  74. data/projects/entities/spec/builtin_types/detached_entity_spec.rb +300 -0
  75. data/projects/entities/spec/builtin_types/entity_spec.rb +501 -0
  76. data/projects/entities/spec/builtin_types/model_spec.rb +420 -0
  77. data/projects/entities/spec/detached_entity/casting_spec.rb +31 -0
  78. data/projects/entities/spec/entity/concerns/associations_spec.rb +73 -0
  79. data/projects/entities/spec/entity/concerns/attribute_helpers_spec.rb +220 -0
  80. data/projects/entities/spec/entity/concerns/callbacks_spec.rb +61 -0
  81. data/projects/entities/spec/entity/concerns/initialization_spec.rb +213 -0
  82. data/projects/entities/spec/entity/concerns/mutations_spec.rb +38 -0
  83. data/projects/entities/spec/entity/concerns/queries_spec.rb +184 -0
  84. data/projects/entities/spec/entity/entity_spec.rb +240 -0
  85. data/projects/entities/spec/entity/extending_existing_spec.rb +137 -0
  86. data/projects/entities/spec/entity/extensions/domain_module_extension_spec.rb +42 -0
  87. data/projects/entities/spec/entity/from_type_declaration_spec.rb +34 -0
  88. data/projects/entities/spec/entity/that_owns_spec.rb +243 -0
  89. data/projects/entities/spec/entity/weak_object_set_spec.rb +91 -0
  90. data/projects/entities/spec/model/model_spec.rb +135 -0
  91. data/projects/entities/spec/model/types_spec.rb +393 -0
  92. data/projects/entities/spec/nested_transactionable/nested_transactionable_spec.rb +67 -0
  93. data/projects/entities/spec/persistence/entity_attributes_crud_drivers/in_memory_minimal_spec.rb +13 -0
  94. data/projects/entities/spec/persistence/entity_base/transaction_spec.rb +509 -0
  95. data/projects/entities/spec/persistence/entity_base/transaction_table_spec.rb +58 -0
  96. data/projects/entities/spec/persistence/persistence_spec.rb +148 -0
  97. data/projects/entities/spec/spec_helper.rb +52 -0
  98. data/projects/entities/spec/support/rubyprof.rb +32 -0
  99. data/projects/entities/spec/support/term_trap.rb +6 -0
  100. data/projects/entities/spec/type_declarations/sensitive_type_removers_spec.rb +90 -0
  101. data/projects/manifest/lib/foobara/manifest.rb +2 -0
  102. data/projects/manifest/spec/manifest_spec.rb +378 -0
  103. data/projects/manifest/spec/model_spec.rb +74 -0
  104. data/projects/manifest/spec/spec_helper.rb +50 -0
  105. data/projects/manifest/spec/type_declaration_spec.rb +39 -0
  106. data/projects/manifest/src/{foobara/manifest/array.rb → array.rb} +1 -1
  107. data/projects/manifest/src/{foobara/manifest/attributes.rb → attributes.rb} +1 -1
  108. data/projects/manifest/src/{foobara/manifest/base_manifest.rb → base_manifest.rb} +14 -6
  109. data/projects/manifest/src/{foobara/manifest/command.rb → command.rb} +3 -3
  110. data/projects/manifest/src/{foobara/manifest/detached_entity.rb → detached_entity.rb} +1 -1
  111. data/projects/manifest/src/{foobara/manifest/model.rb → model.rb} +1 -1
  112. data/projects/manifest/src/{foobara/manifest/possible_error.rb → possible_error.rb} +2 -0
  113. data/projects/manifest/src/{foobara/manifest/type.rb → type.rb} +4 -4
  114. data/projects/manifest/src/{foobara/manifest/type_declaration.rb → type_declaration.rb} +5 -5
  115. data/projects/model_plumbing/lib/foobara/model_plumbing.rb +13 -0
  116. data/projects/{namespace/lib/foobara/namespace.rb → model_plumbing/src/model_plumbing.rb} +1 -1
  117. data/projects/{builtin_types → typesystem/projects/builtin_types}/lib/foobara/builtin_types.rb +5 -0
  118. data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/supported_processors/element_type_declarations.rb +1 -3
  119. data/projects/{builtin_types → typesystem/projects/builtin_types}/src/builtin_types.rb +7 -5
  120. data/projects/{builtin_types → typesystem/projects/builtin_types}/src/email/transformers/downcase.rb +0 -2
  121. data/projects/typesystem/projects/callback/lib/foobara/callback.rb +3 -0
  122. data/projects/{callback → typesystem/projects/callback}/src/block/concerns/keyword_argumentable_block.rb +2 -0
  123. data/projects/{callback → typesystem/projects/callback}/src/block/concerns/type.rb +2 -0
  124. data/projects/{callback → typesystem/projects/callback}/src/set.rb +3 -1
  125. data/projects/{common → typesystem/projects/common}/lib/foobara/common.rb +2 -0
  126. data/projects/{common → typesystem/projects/common}/src/data_path.rb +1 -1
  127. data/projects/{common → typesystem/projects/common}/src/error.rb +33 -9
  128. data/projects/{common → typesystem/projects/common}/src/error_key.rb +1 -1
  129. data/projects/{common → typesystem/projects/common}/src/outcome.rb +9 -5
  130. data/projects/typesystem/projects/concerns/lib/foobara/concerns.rb +3 -0
  131. data/projects/typesystem/projects/delegate/lib/foobara/delegate.rb +6 -0
  132. data/projects/{delegate → typesystem/projects/delegate}/src/extensions/module.rb +4 -0
  133. data/projects/{domain → typesystem/projects/domain}/lib/foobara/domain.rb +2 -0
  134. data/projects/{domain → typesystem/projects/domain}/src/domain.rb +35 -7
  135. data/projects/{domain → typesystem/projects/domain}/src/domain_module_extension.rb +5 -155
  136. data/projects/{domain → typesystem/projects/domain}/src/extensions/foobara.rb +0 -10
  137. data/projects/{domain → typesystem/projects/domain}/src/global_domain.rb +1 -0
  138. data/projects/{domain → typesystem/projects/domain}/src/global_organization.rb +1 -0
  139. data/projects/{domain → typesystem/projects/domain}/src/is_manifestable.rb +1 -0
  140. data/projects/{domain → typesystem/projects/domain}/src/manifestable.rb +1 -0
  141. data/projects/{domain → typesystem/projects/domain}/src/module_extension.rb +14 -10
  142. data/projects/typesystem/projects/enumerated/lib/foobara/enumerated.rb +3 -0
  143. data/projects/{enumerated → typesystem/projects/enumerated}/src/accessors.rb +2 -0
  144. data/projects/typesystem/projects/namespace/lib/foobara/namespace.rb +6 -0
  145. data/projects/{namespace → typesystem/projects/namespace}/src/is_namespace.rb +1 -1
  146. data/projects/{namespace → typesystem/projects/namespace}/src/namespace/lookup_mode.rb +6 -0
  147. data/projects/{namespace → typesystem/projects/namespace}/src/namespace.rb +2 -0
  148. data/projects/{namespace → typesystem/projects/namespace}/src/namespace_helpers.rb +1 -0
  149. data/projects/typesystem/projects/project/lib/foobara/project.rb +10 -0
  150. data/projects/{foobara → typesystem/projects/project}/src/foobara.rb +1 -6
  151. data/projects/{foobara → typesystem/projects/project}/src/project.rb +3 -0
  152. data/projects/typesystem/projects/state_machine/lib/foobara/state_machine.rb +3 -0
  153. data/projects/{state_machine → typesystem/projects/state_machine}/src/callbacks.rb +37 -8
  154. data/projects/{state_machine → typesystem/projects/state_machine}/src/sugar.rb +2 -0
  155. data/projects/{state_machine → typesystem/projects/state_machine}/src/transition_log.rb +2 -0
  156. data/projects/{type_declarations → typesystem/projects/type_declarations}/lib/foobara/type_declarations.rb +10 -7
  157. data/projects/{type_declarations → typesystem/projects/type_declarations}/src/dsl/attributes.rb +2 -0
  158. data/projects/{type_declarations → typesystem/projects/type_declarations}/src/error_extension.rb +9 -1
  159. data/projects/{type_declarations → typesystem/projects/type_declarations}/src/lazy_element_types/array.rb +2 -0
  160. data/projects/{type_declarations → typesystem/projects/type_declarations}/src/type_declaration_handler.rb +21 -5
  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 +270 -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 +50 -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 +488 -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/entity/src/extensions/domain/domain_module_extension.rb +0 -15
  233. data/projects/enumerated/lib/foobara/enumerated.rb +0 -1
  234. data/projects/foobara/lib/foobara/all.rb +0 -48
  235. data/projects/in_memory_crud_driver_minimal/lib/foobara/in_memory_crud_driver_minimal.rb +0 -1
  236. data/projects/state_machine/lib/foobara/state_machine.rb +0 -1
  237. data/projects/value/lib/foobara/value.rb +0 -7
  238. data/projects/weak_object_set/lib/foobara/weak_object_set.rb +0 -3
  239. /data/{projects/foobara/lib → lib}/foobara.rb +0 -0
  240. /data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/aliases.rb +0 -0
  241. /data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/associations.rb +0 -0
  242. /data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/attributes.rb +0 -0
  243. /data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/equality.rb +0 -0
  244. /data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/initialization.rb +0 -0
  245. /data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/persistence.rb +0 -0
  246. /data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/reflection.rb +0 -0
  247. /data/projects/{detached_entity → entities/projects/detached_entity}/src/concerns/serialize.rb +0 -0
  248. /data/projects/{detached_entity → entities/projects/detached_entity}/src/detached_entity.rb +0 -0
  249. /data/projects/{detached_entity → entities/projects/detached_entity}/src/detached_entity_type.rb +0 -0
  250. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/builtin_types/detached_entity/casters/hash.rb +0 -0
  251. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/builtin_types/detached_entity/casters/primary_key.rb +0 -0
  252. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/builtin_types/detached_entity.rb +0 -0
  253. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration/attributes_handler_desugarizer.rb +0 -0
  254. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration/hash_desugarizer.rb +0 -0
  255. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration/model_class_desugarizer.rb +0 -0
  256. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration/primary_key_desugarizer.rb +0 -0
  257. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration/to_type_transformer.rb +0 -0
  258. /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
  259. /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
  260. /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
  261. /data/projects/{detached_entity → entities/projects/detached_entity}/src/extensions/type_declarations/handlers/extend_detached_entity_type_declaration.rb +0 -0
  262. /data/projects/{detached_entity → entities/projects/detached_entity}/src/remove_sensitive_values_transformer_extensions.rb +0 -0
  263. /data/projects/{detached_entity → entities/projects/detached_entity}/src/sensitive_type_removers/detached_entity.rb +0 -0
  264. /data/projects/{detached_entity → entities/projects/detached_entity}/src/sensitive_value_removers/detached_entity.rb +0 -0
  265. /data/projects/{entity → entities/projects/entity}/src/association_depth.rb +0 -0
  266. /data/projects/{entity → entities/projects/entity}/src/concerns/attributes.rb +0 -0
  267. /data/projects/{entity → entities/projects/entity}/src/concerns/initialization.rb +0 -0
  268. /data/projects/{entity → entities/projects/entity}/src/concerns/mutations.rb +0 -0
  269. /data/projects/{entity → entities/projects/entity}/src/concerns/persistence.rb +0 -0
  270. /data/projects/{entity → entities/projects/entity}/src/concerns/queries.rb +0 -0
  271. /data/projects/{entity → entities/projects/entity}/src/concerns/types.rb +0 -0
  272. /data/projects/{entity → entities/projects/entity}/src/entity.rb +0 -0
  273. /data/projects/{entity → entities/projects/entity}/src/extensions/builtin_types/entity/casters/hash.rb +0 -0
  274. /data/projects/{entity → entities/projects/entity}/src/extensions/builtin_types/entity/casters/primary_key.rb +0 -0
  275. /data/projects/{entity → entities/projects/entity}/src/extensions/builtin_types/entity/casters/record_from_closed_transaction.rb +0 -0
  276. /data/projects/{entity → entities/projects/entity}/src/extensions/builtin_types/entity/casters/record_from_current_transaction.rb +0 -0
  277. /data/projects/{entity → entities/projects/entity}/src/extensions/builtin_types/entity/validators/model_instance_is_valid.rb +0 -0
  278. /data/projects/{entity → entities/projects/entity}/src/extensions/builtin_types/entity.rb +0 -0
  279. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration/attributes_handler_desugarizer.rb +0 -0
  280. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration/hash_desugarizer.rb +0 -0
  281. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration/model_class_desugarizer.rb +0 -0
  282. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration/primary_key_desugarizer.rb +0 -0
  283. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration/to_type_transformer.rb +0 -0
  284. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration/validate_primary_key_is_symbol.rb +0 -0
  285. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration/validate_primary_key_present.rb +0 -0
  286. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration/validate_primary_key_references_attribute.rb +0 -0
  287. /data/projects/{entity → entities/projects/entity}/src/extensions/type_declarations/handlers/extend_entity_type_declaration.rb +0 -0
  288. /data/projects/{entity → entities/projects/entity}/src/new_prepend.rb +0 -0
  289. /data/projects/{entity → entities/projects/entity}/src/sensitive_type_removers/entity.rb +0 -0
  290. /data/projects/{entity → entities/projects/entity}/src/sensitive_value_removers/entity.rb +0 -0
  291. /data/projects/{in_memory_crud_driver → entities/projects/in_memory_crud_driver}/src/in_memory.rb +0 -0
  292. /data/projects/{model → entities/projects/model}/src/concerns/aliases.rb +0 -0
  293. /data/projects/{model → entities/projects/model}/src/concerns/reflection.rb +0 -0
  294. /data/projects/{model → entities/projects/model}/src/extensions/builtin_types/model/casters/hash.rb +0 -0
  295. /data/projects/{model → entities/projects/model}/src/extensions/builtin_types/model/supported_transformers/mutable.rb +0 -0
  296. /data/projects/{model → entities/projects/model}/src/extensions/builtin_types/model/validators/model_instance_is_valid.rb +0 -0
  297. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/array_with_symbolic_elements.rb +0 -0
  298. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/attributes_handler_desugarizer.rb +0 -0
  299. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/delegates_desugarizer.rb +0 -0
  300. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/delegates_validator.rb +0 -0
  301. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/hash_desugarizer.rb +0 -0
  302. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/model_class_desugarizer.rb +0 -0
  303. /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
  304. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/symbolize_private.rb +0 -0
  305. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration/valid_attribute_names.rb +0 -0
  306. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_model_type_declaration.rb +0 -0
  307. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/hash_desugarizer.rb +0 -0
  308. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/model_class_type_desugarizer.rb +0 -0
  309. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/mutable_validator.rb +0 -0
  310. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/normalize_mutable_attributes_desugarizer.rb +0 -0
  311. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration/to_type_transformer.rb +0 -0
  312. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/extend_registered_model_type_declaration.rb +0 -0
  313. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/handlers/registered_type_declaration/model_class_desugarizer.rb +0 -0
  314. /data/projects/{model → entities/projects/model}/src/extensions/type_declarations/lazy_element_types/model.rb +0 -0
  315. /data/projects/{model → entities/projects/model}/src/sensitive_type_removers/extended_model.rb +0 -0
  316. /data/projects/{model → entities/projects/model}/src/sensitive_type_removers/model.rb +0 -0
  317. /data/projects/{model → entities/projects/model}/src/sensitive_value_removers/model.rb +0 -0
  318. /data/projects/{persistence → entities/projects/persistence}/src/entity_attributes_crud_driver.rb +0 -0
  319. /data/projects/{persistence → entities/projects/persistence}/src/entity_base/table.rb +0 -0
  320. /data/projects/{persistence → entities/projects/persistence}/src/entity_base/transaction/concerns/entity_callback_handling.rb +0 -0
  321. /data/projects/{persistence → entities/projects/persistence}/src/entity_base/transaction/concerns/state_transitions.rb +0 -0
  322. /data/projects/{persistence → entities/projects/persistence}/src/entity_base/transaction.rb +0 -0
  323. /data/projects/{persistence → entities/projects/persistence}/src/entity_base/transaction_table/concerns/queries.rb +0 -0
  324. /data/projects/{persistence → entities/projects/persistence}/src/entity_base.rb +0 -0
  325. /data/projects/{persistence → entities/projects/persistence}/src/persistence.rb +0 -0
  326. /data/projects/{weak_object_set → entities/projects/weak_object_set}/src/weak_object_set.rb +0 -0
  327. /data/projects/manifest/src/{foobara/manifest/domain.rb → domain.rb} +0 -0
  328. /data/projects/manifest/src/{foobara/manifest/entity.rb → entity.rb} +0 -0
  329. /data/projects/manifest/src/{foobara/manifest/error.rb → error.rb} +0 -0
  330. /data/projects/manifest/src/{foobara/manifest/organization.rb → organization.rb} +0 -0
  331. /data/projects/manifest/src/{foobara/manifest/processor.rb → processor.rb} +0 -0
  332. /data/projects/manifest/src/{foobara/manifest/processor_class.rb → processor_class.rb} +0 -0
  333. /data/projects/manifest/src/{foobara/manifest/root_manifest.rb → root_manifest.rb} +0 -0
  334. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/README.md +0 -0
  335. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/array/casters/arrayable.rb +0 -0
  336. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/array/supported_processors/element_type_declaration.rb +0 -0
  337. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/array/supported_validators/size.rb +0 -0
  338. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/associative_array/casters/array.rb +0 -0
  339. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/associative_array/supported_processors/key_type_declaration.rb +0 -0
  340. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/associative_array/supported_processors/value_type_declaration.rb +0 -0
  341. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/atomic_duck.rb +0 -0
  342. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/casters/array.rb +0 -0
  343. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/casters/hash.rb +0 -0
  344. /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
  345. /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
  346. /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
  347. /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
  348. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/supported_transformers/defaults.rb +0 -0
  349. /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
  350. /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
  351. /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
  352. /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
  353. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/supported_validators/required.rb +0 -0
  354. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/attributes/transformers/remove_unexpected_attributes.rb +0 -0
  355. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/big_decimal/casters/integer.rb +0 -0
  356. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/big_decimal/casters/string.rb +0 -0
  357. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/boolean/casters/numeric.rb +0 -0
  358. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/boolean/casters/string_or_symbol.rb +0 -0
  359. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/date/casters/hash.rb +0 -0
  360. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/date/casters/string.rb +0 -0
  361. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/datetime/casters/date.rb +0 -0
  362. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/datetime/casters/hash.rb +0 -0
  363. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/datetime/casters/seconds_since_epoch.rb +0 -0
  364. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/datetime/casters/string.rb +0 -0
  365. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/duck/supported_casters/allow_nil.rb +0 -0
  366. /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
  367. /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
  368. /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
  369. /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
  370. /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
  371. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/duck/supported_validators/instance_of.rb +0 -0
  372. /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
  373. /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
  374. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/duck/supported_validators/one_of.rb +0 -0
  375. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/duck.rb +0 -0
  376. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/duckture.rb +0 -0
  377. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/email/validator_base.rb +0 -0
  378. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/float/casters/integer.rb +0 -0
  379. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/float/casters/string.rb +0 -0
  380. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/integer/casters/string.rb +0 -0
  381. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/number/supported_validators/max.rb +0 -0
  382. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/number/supported_validators/min.rb +0 -0
  383. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/string/casters/numeric.rb +0 -0
  384. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/string/casters/symbol.rb +0 -0
  385. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/string/supported_transformers/downcase.rb +0 -0
  386. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/string/supported_validators/matches.rb +0 -0
  387. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/string/supported_validators/max_length.rb +0 -0
  388. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/symbol/casters/string.rb +0 -0
  389. /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
  390. /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
  391. /data/projects/{builtin_types → typesystem/projects/builtin_types}/src/tuple/supported_processors/element_type_declarations.rb +0 -0
  392. /data/projects/{callback → typesystem/projects/callback}/src/block/after.rb +0 -0
  393. /data/projects/{callback → typesystem/projects/callback}/src/block/around.rb +0 -0
  394. /data/projects/{callback → typesystem/projects/callback}/src/block/before.rb +0 -0
  395. /data/projects/{callback → typesystem/projects/callback}/src/block/concerns/block_parameter_not_allowed.rb +0 -0
  396. /data/projects/{callback → typesystem/projects/callback}/src/block/concerns/block_parameter_required.rb +0 -0
  397. /data/projects/{callback → typesystem/projects/callback}/src/block/concerns/single_argument_block.rb +0 -0
  398. /data/projects/{callback → typesystem/projects/callback}/src/block/error.rb +0 -0
  399. /data/projects/{callback → typesystem/projects/callback}/src/block.rb +0 -0
  400. /data/projects/{callback → typesystem/projects/callback}/src/registry/base.rb +0 -0
  401. /data/projects/{callback → typesystem/projects/callback}/src/registry/chained_conditioned.rb +0 -0
  402. /data/projects/{callback → typesystem/projects/callback}/src/registry/chained_multiple_action.rb +0 -0
  403. /data/projects/{callback → typesystem/projects/callback}/src/registry/conditioned.rb +0 -0
  404. /data/projects/{callback → typesystem/projects/callback}/src/registry/joined_conditioned.rb +0 -0
  405. /data/projects/{callback → typesystem/projects/callback}/src/registry/multiple_action.rb +0 -0
  406. /data/projects/{callback → typesystem/projects/callback}/src/registry/single_action.rb +0 -0
  407. /data/projects/{callback → typesystem/projects/callback}/src/runner.rb +0 -0
  408. /data/projects/{common → typesystem/projects/common}/src/error_collection.rb +0 -0
  409. /data/projects/{common → typesystem/projects/common}/src/possible_error.rb +0 -0
  410. /data/projects/{common → typesystem/projects/common}/src/runtime_error.rb +0 -0
  411. /data/projects/{concerns → typesystem/projects/concerns}/src/concern.rb +0 -0
  412. /data/projects/{domain → typesystem/projects/domain}/src/organization.rb +0 -0
  413. /data/projects/{domain → typesystem/projects/domain}/src/organization_module_extension.rb +0 -0
  414. /data/projects/{enumerated → typesystem/projects/enumerated}/src/enumerated.rb +0 -0
  415. /data/projects/{enumerated → typesystem/projects/enumerated}/src/values.rb +0 -0
  416. /data/projects/{namespace → typesystem/projects/namespace}/src/ambiguous_registry.rb +0 -0
  417. /data/projects/{namespace → typesystem/projects/namespace}/src/base_registry.rb +0 -0
  418. /data/projects/{namespace → typesystem/projects/namespace}/src/extensions/module.rb +0 -0
  419. /data/projects/{namespace → typesystem/projects/namespace}/src/prefixless_registry.rb +0 -0
  420. /data/projects/{namespace → typesystem/projects/namespace}/src/scoped.rb +0 -0
  421. /data/projects/{namespace → typesystem/projects/namespace}/src/unambiguous_registry.rb +0 -0
  422. /data/projects/{state_machine → typesystem/projects/state_machine}/src/log_entry.rb +0 -0
  423. /data/projects/{state_machine → typesystem/projects/state_machine}/src/state_machine.rb +0 -0
  424. /data/projects/{state_machine → typesystem/projects/state_machine}/src/transitions.rb +0 -0
  425. /data/projects/{state_machine → typesystem/projects/state_machine}/src/validations.rb +0 -0
  426. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/attributes.rb +0 -0
  427. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/attributes_transformers/from_yaml.rb +0 -0
  428. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/attributes_transformers/only.rb +0 -0
  429. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/attributes_transformers/reject.rb +0 -0
  430. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/attributes_transformers/set.rb +0 -0
  431. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/attributes_transformers.rb +0 -0
  432. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/caster.rb +0 -0
  433. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/desugarizer.rb +0 -0
  434. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/desugarizer_pipeline.rb +0 -0
  435. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/element_processor.rb +0 -0
  436. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_array_type_declaration/array_desugarizer.rb +0 -0
  437. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_array_type_declaration/element_type_declaration_desugarizer.rb +0 -0
  438. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_array_type_declaration/to_type_transformer.rb +0 -0
  439. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_array_type_declaration/type_set_to_array_desugarizer.rb +0 -0
  440. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_array_type_declaration.rb +0 -0
  441. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_associative_array_type_declaration/key_type_declaration_desugarizer.rb +0 -0
  442. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_associative_array_type_declaration/to_type_transformer.rb +0 -0
  443. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_associative_array_type_declaration/value_type_declaration_desugarizer.rb +0 -0
  444. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_associative_array_type_declaration.rb +0 -0
  445. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_attributes_type_declaration/dsl_desugarizer.rb +0 -0
  446. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_attributes_type_declaration/element_type_declarations_desugarizer.rb +0 -0
  447. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_attributes_type_declaration/hash_desugarizer.rb +0 -0
  448. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_attributes_type_declaration/to_type_transformer.rb +0 -0
  449. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_attributes_type_declaration.rb +0 -0
  450. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_registered_type_declaration/to_type_transformer.rb +0 -0
  451. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_registered_type_declaration.rb +0 -0
  452. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_tuple_type_declaration/array_desugarizer.rb +0 -0
  453. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_tuple_type_declaration/to_type_transformer.rb +0 -0
  454. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/extend_tuple_type_declaration.rb +0 -0
  455. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/registered_type_declaration/to_type_transformer.rb +0 -0
  456. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/handlers/registered_type_declaration.rb +0 -0
  457. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/lazy_element_types/attributes.rb +0 -0
  458. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/lazy_element_types/hash.rb +0 -0
  459. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/lazy_element_types/tuple.rb +0 -0
  460. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/processor.rb +0 -0
  461. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/remove_sensitive_values_transformer.rb +0 -0
  462. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/sensitive_type_remover.rb +0 -0
  463. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/sensitive_type_removers/array.rb +0 -0
  464. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/sensitive_type_removers/attributes.rb +0 -0
  465. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/sensitive_value_removers/array.rb +0 -0
  466. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/sensitive_value_removers/attributes.rb +0 -0
  467. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/to_type_transformer.rb +0 -0
  468. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/transformer.rb +0 -0
  469. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/type_builder.rb +0 -0
  470. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/type_declaration.rb +0 -0
  471. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/type_declaration_error.rb +0 -0
  472. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/type_declaration_handler_registry.rb +0 -0
  473. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/type_declaration_validator.rb +0 -0
  474. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/type_declarations.rb +0 -0
  475. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/typed_transformer.rb +0 -0
  476. /data/projects/{type_declarations → typesystem/projects/type_declarations}/src/validator.rb +0 -0
  477. /data/projects/{types → typesystem/projects/types}/src/element_processor.rb +0 -0
  478. /data/projects/{types → typesystem/projects/types}/src/extensions/error.rb +0 -0
  479. /data/projects/{types → typesystem/projects/types}/src/type/concerns/reflection.rb +0 -0
  480. /data/projects/{types → typesystem/projects/types}/src/types.rb +0 -0
  481. /data/projects/{value → typesystem/projects/value}/src/caster.rb +0 -0
  482. /data/projects/{value → typesystem/projects/value}/src/data_error.rb +0 -0
  483. /data/projects/{value → typesystem/projects/value}/src/mutator.rb +0 -0
  484. /data/projects/{value → typesystem/projects/value}/src/processor/casting.rb +0 -0
  485. /data/projects/{value → typesystem/projects/value}/src/processor/multi.rb +0 -0
  486. /data/projects/{value → typesystem/projects/value}/src/processor/pipeline.rb +0 -0
  487. /data/projects/{value → typesystem/projects/value}/src/processor/runner.rb +0 -0
  488. /data/projects/{value → typesystem/projects/value}/src/processor/selection.rb +0 -0
  489. /data/projects/{value → typesystem/projects/value}/src/transformer.rb +0 -0
  490. /data/projects/{value → typesystem/projects/value}/src/validator.rb +0 -0
@@ -11,43 +11,6 @@ module Foobara
11
11
  end
12
12
 
13
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
14
  include Concern
52
15
  include Manifestable
53
16
 
@@ -96,7 +59,6 @@ module Foobara
96
59
  child = Object.const_get(child_name)
97
60
 
98
61
  break if child.foobara_domain?
99
-
100
62
  break if child.foobara_organization?
101
63
 
102
64
  # TODO: unclear why we need this check, hmmm, figure it out and document it (or delete if not needed)
@@ -105,9 +67,7 @@ module Foobara
105
67
  # in .reset_alls hmmmmmm...
106
68
  # :nocov:
107
69
  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)
70
+ value.is_a?(Types::Type) || (value.is_a?(::Class) && value.respond_to?(:foobara_type?))
111
71
  # :nocov:
112
72
  end
113
73
 
@@ -245,10 +205,6 @@ module Foobara
245
205
  end
246
206
  end
247
207
 
248
- def foobara_command_classes
249
- foobara_all_command(mode: Namespace::LookupMode::DIRECT)
250
- end
251
-
252
208
  def foobara_register_type(type_symbol, *type_declaration_bits, &block)
253
209
  type = if block.nil? && type_declaration_bits.size == 1 && type_declaration_bits.first.is_a?(Types::Type)
254
210
  type_declaration_bits.first
@@ -310,107 +266,6 @@ module Foobara
310
266
  type
311
267
  end
312
268
 
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
269
  def foobara_depends_on?(other_domain)
415
270
  other_domain = Domain.to_domain(other_domain)
416
271
  other_domain == GlobalDomain || foobara_depends_on.include?(other_domain.foobara_full_domain_name)
@@ -455,13 +310,6 @@ module Foobara
455
310
  domain.foobara_manifest_reference
456
311
  end.sort
457
312
 
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
313
  types = foobara_all_type(mode: Namespace::LookupMode::DIRECT).map do |type|
466
314
  if to_include
467
315
  to_include << type
@@ -469,7 +317,7 @@ module Foobara
469
317
  type.foobara_manifest_reference
470
318
  end.sort
471
319
 
472
- manifest = super.merge(commands:, types:)
320
+ manifest = super.merge(types:)
473
321
 
474
322
  unless depends_on.empty?
475
323
  manifest[:depends_on] = depends_on
@@ -478,6 +326,8 @@ module Foobara
478
326
  manifest
479
327
  end
480
328
 
329
+ private
330
+
481
331
  def _set_type_constant(type)
482
332
  domain = if scoped_full_path.empty?
483
333
  GlobalDomain
@@ -534,7 +384,7 @@ module Foobara
534
384
  types_mod.send(:remove_const, type.scoped_short_name)
535
385
  types_mod.const_set(type.scoped_short_name, type.target_class)
536
386
 
537
- DomainModuleExtension._copy_constants(existing_value, type.target_class)
387
+ Domain.copy_constants(existing_value, type.target_class)
538
388
  else
539
389
  # :nocov:
540
390
  raise CannotSetTypeConstantError,
@@ -1,11 +1,5 @@
1
1
  module Foobara
2
2
  class << self
3
- # TODO: come up with a way to change a type's manifest... Or maybe treat Model very differently?
4
- # ok... new manifest will be of this form...
5
- # { <orgs|commands|types, etc, letś call this a type category...> => full_scoped_name => manifest }
6
- #
7
- # The manifest itself will only contain full scoped names. This is kind of analogous to a store serializer
8
- # in the http connector.
9
3
  def manifest
10
4
  to_include = Namespace.global.foobara_all_organization.to_set
11
5
 
@@ -61,10 +55,6 @@ module Foobara
61
55
  Namespace.global.foobara_all_domain
62
56
  end
63
57
 
64
- def all_commands
65
- Namespace.global.foobara_all_command
66
- end
67
-
68
58
  def all_types
69
59
  Namespace.global.foobara_all_type
70
60
  end
@@ -6,6 +6,7 @@ module Foobara
6
6
  GlobalOrganization.foobara_register(self)
7
7
 
8
8
  foobara_domain!
9
+
9
10
  self.foobara_domain_name = "global_domain"
10
11
  self.foobara_full_domain_name = "#{GlobalOrganization.foobara_organization_name}::#{foobara_domain_name}"
11
12
  self.foobara_manifest_reference = foobara_full_domain_name
@@ -6,6 +6,7 @@ module Foobara
6
6
  Namespace.global.foobara_register(self)
7
7
 
8
8
  foobara_organization!
9
+
9
10
  self.foobara_manifest_reference = self.foobara_organization_name = "global_organization"
10
11
  end
11
12
  end
@@ -8,6 +8,7 @@ module Foobara
8
8
  ].each do |variable|
9
9
  remove_instance_variable(variable) if instance_variable_defined?(variable)
10
10
  end
11
+
11
12
  super
12
13
  end
13
14
 
@@ -1,4 +1,5 @@
1
1
  require_relative "is_manifestable"
2
+ require "foobara/concerns"
2
3
 
3
4
  module Foobara
4
5
  # Weird that this concept lives here instead of in its own project...
@@ -1,3 +1,5 @@
1
+ require "foobara/namespace"
2
+
1
3
  require_relative "organization_module_extension"
2
4
  require_relative "domain_module_extension"
3
5
 
@@ -67,16 +69,8 @@ module Foobara
67
69
 
68
70
  if value != child
69
71
  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)
72
+
73
+ foobara_set_types_mod_constant(types_mod, child.scoped_short_name, child)
80
74
  end
81
75
  end
82
76
  end
@@ -107,6 +101,16 @@ module Foobara
107
101
  def foobara_organization?
108
102
  false
109
103
  end
104
+
105
+ private
106
+
107
+ # Unclear if we actually need this but putting it here to allow entities project
108
+ # to override this to set the constant to the target class
109
+ def foobara_set_types_mod_constant(types_mod, name, value)
110
+ # :nocov:
111
+ types_mod.const_set(types_mod, name, value)
112
+ # :nocov:
113
+ end
110
114
  end
111
115
  end
112
116
  end
@@ -0,0 +1,3 @@
1
+ module Foobara::Enumerated; end
2
+
3
+ Foobara.project("enumerated", project_path: "#{__dir__}/../..")
@@ -1,3 +1,5 @@
1
+ require "foobara/concerns"
2
+
1
3
  module Foobara
2
4
  module Enumerated
3
5
  module Accessors
@@ -0,0 +1,6 @@
1
+ module Foobara
2
+ class Namespace
3
+ end
4
+ end
5
+
6
+ Foobara.project("namespace", project_path: "#{__dir__}/../..")
@@ -181,7 +181,7 @@ module Foobara
181
181
 
182
182
  if candidates.size > 1
183
183
  # :nocov:
184
- raise AmbiguousNameError,
184
+ raise AmbiguousLookupError,
185
185
  "#{path} is ambiguous. Matches the following: #{candidates.map(&:scoped_full_name)}"
186
186
  # :nocov:
187
187
  end
@@ -30,6 +30,12 @@ module Foobara
30
30
  # Maybe use bitmasks for the above 3 places to look instead of a list of 7 lookup types? (There should be 8...)
31
31
  module LookupMode
32
32
  GENERAL = :general
33
+ # Relaxed will allow you to find registered entries without prefixes as long as it's not ambiguous
34
+ # So if there is a SomeOrg::SomeDomain::SomeCommand `GlobalOrganization.foobara_lookup(:SomeCommand)`
35
+ # will return nil but
36
+ # `GlobalOrganization.foobara_lookup(:SomeCommand, mode: Foobara::Namespace::LookupMode::RELAXED)`
37
+ # will return SomeOrg::SomeDomain::SomeCommand even though we didn't specify the necessary prefixes
38
+ # to navigate to it.
33
39
  RELAXED = :relaxed
34
40
  DIRECT = :direct
35
41
  STRICT = :strict
@@ -1,3 +1,5 @@
1
+ require "foobara/lru_cache"
2
+
1
3
  module Foobara
2
4
  class Namespace
3
5
  include IsNamespace
@@ -1,4 +1,5 @@
1
1
  require_relative "is_namespace"
2
+ require "foobara/concerns"
2
3
 
3
4
  module Foobara
4
5
  class Namespace
@@ -0,0 +1,10 @@
1
+ require "foobara/util"
2
+
3
+ module Foobara
4
+ class Project; end
5
+ end
6
+
7
+ Foobara::Util.require_directory "#{__dir__}/../../src"
8
+
9
+ # Do we need this to be a project??
10
+ Foobara.project("project", project_path: "#{__dir__}/../..")
@@ -4,6 +4,7 @@ module Foobara
4
4
  class MethodCantBeCalledInProductionError < StandardError; end
5
5
 
6
6
  class << self
7
+ # TODO: let's eliminate this method
7
8
  def require_project_file(project, path)
8
9
  # :nocov:
9
10
  warn "DEPRECATION WARNING: require_project_file is deprecated. Use require_relative instead."
@@ -17,12 +18,6 @@ module Foobara
17
18
  @all_projects ||= {}
18
19
  end
19
20
 
20
- def projects(*symbols)
21
- symbols.each do |symbol|
22
- project(symbol)
23
- end
24
- end
25
-
26
21
  def project(symbol, project_path: nil)
27
22
  if all_projects.key?(symbol)
28
23
  # :nocov:
@@ -21,7 +21,9 @@ module Foobara
21
21
 
22
22
  def load
23
23
  require require_path
24
+
24
25
  src_dir = "#{project_path}/src"
26
+
25
27
  if Dir.exist?(src_dir)
26
28
  Util.require_directory(src_dir)
27
29
  end
@@ -35,6 +37,7 @@ module Foobara
35
37
 
36
38
  def reset_all
37
39
  Foobara.raise_if_production!("reset_all")
40
+
38
41
  if self.module.respond_to?(:reset_all)
39
42
  self.module.reset_all
40
43
  end
@@ -0,0 +1,3 @@
1
+ class Foobara::StateMachine; end
2
+
3
+ Foobara.project("state_machine", project_path: "#{__dir__}/../..")
@@ -1,3 +1,5 @@
1
+ require "foobara/callback"
2
+
1
3
  module Foobara
2
4
  class StateMachine
3
5
  module Callbacks
@@ -9,14 +11,41 @@ module Foobara
9
11
  self.callback_registry = Callback::Registry::ChainedConditioned.new(self.class.class_callback_registry)
10
12
  end
11
13
 
12
- foobara_delegate :callbacks_for,
13
- :has_callbacks?,
14
- :has_before_callbacks?,
15
- :has_after_callbacks?,
16
- :has_around_callbacks?,
17
- :has_error_callbacks?,
18
- :has_failure_callbacks?,
19
- to: :callback_registry
14
+ def callbacks_for(*, **)
15
+ # :nocov:
16
+ callback_registry.callbacks_for(*, **)
17
+ # :nocov:
18
+ end
19
+
20
+ def has_callbacks?(*, **)
21
+ # :nocov:
22
+ callback_registry.has_callbacks?(*, **)
23
+ # :nocov:
24
+ end
25
+
26
+ def has_before_callbacks?(*, **)
27
+ # :nocov:
28
+ callback_registry.has_before_callbacks?(*, **)
29
+ # :nocov:
30
+ end
31
+
32
+ def has_after_callbacks?(*, **)
33
+ # :nocov:
34
+ callback_registry.has_after_callbacks?(*, **)
35
+ # :nocov:
36
+ end
37
+
38
+ def has_around_callbacks?(*, **)
39
+ # :nocov:
40
+ callback_registry.has_around_callbacks?(*, **)
41
+ # :nocov:
42
+ end
43
+
44
+ def has_error_callbacks?(*, **)
45
+ # :nocov:
46
+ callback_registry.has_error_callbacks?(*, **)
47
+ # :nocov:
48
+ end
20
49
 
21
50
  def register_transition_callback(type, **, &)
22
51
  callback_registry.register_callback(type, **, &)
@@ -1,3 +1,5 @@
1
+ require "foobara/enumerated"
2
+
1
3
  module Foobara
2
4
  class StateMachine
3
5
  module Sugar
@@ -1,3 +1,5 @@
1
+ require "foobara/concerns"
2
+
1
3
  module Foobara
2
4
  class StateMachine
3
5
  module TransitionLog
@@ -1,3 +1,5 @@
1
+ require "foobara/types"
2
+
1
3
  module Foobara
2
4
  module TypeDeclarations
3
5
  class << self
@@ -13,24 +15,23 @@ module Foobara
13
15
  end
14
16
 
15
17
  [
16
- "foobara_children",
17
- "foobara_registry",
18
- "foobara_type_builder"
18
+ :@foobara_children,
19
+ :@foobara_registry,
20
+ :@foobara_type_builder
19
21
  ].each do |var_name|
20
- var_name = "@#{var_name}"
21
-
22
22
  # Don't we only have to do this for Foobara and not all of these??
23
23
  [
24
24
  Namespace.global,
25
25
  Foobara::GlobalOrganization,
26
26
  Foobara::GlobalDomain,
27
27
  Domain,
28
- Command,
29
28
  Types::Type,
30
29
  Value::Processor,
31
30
  Error
32
31
  ].each do |klass|
33
- klass.remove_instance_variable(var_name) if klass.instance_variable_defined?(var_name)
32
+ if klass.instance_variable_defined?(var_name)
33
+ klass.remove_instance_variable(var_name)
34
+ end
34
35
  end
35
36
  end
36
37
 
@@ -136,3 +137,5 @@ module Foobara
136
137
  end
137
138
  end
138
139
  end
140
+
141
+ Foobara.project("type_declarations", project_path: "#{__dir__}/../..")
@@ -45,6 +45,8 @@ module Foobara
45
45
 
46
46
  attr_accessor :_method_missing_disabled
47
47
 
48
+ # Underscores are used in this class to free up more potential attribute names
49
+ # by assuming they generally won't start with _ in real use.
48
50
  def _to_declaration(&)
49
51
  instance_exec(&)
50
52
  _type_declaration
@@ -67,7 +67,15 @@ module Foobara
67
67
  end
68
68
  end
69
69
 
70
- foobara_delegate :context_type, :context_type_declaration, to: :class
70
+ def context_type
71
+ self.class.context_type
72
+ end
73
+
74
+ def context_type_declaration
75
+ # :nocov:
76
+ self.class.context_type_declaration
77
+ # :nocov:
78
+ end
71
79
  end
72
80
  end
73
81
  end
@@ -2,6 +2,8 @@ module Foobara
2
2
  module TypeDeclarations
3
3
  module LazyElementTypes
4
4
  module Array
5
+ # TODO: change this to class << self?
6
+
5
7
  module_function
6
8
 
7
9
  def resolve(type)
@@ -1,3 +1,5 @@
1
+ require "foobara/value"
2
+
1
3
  require_relative "with_registries"
2
4
 
3
5
  module Foobara
@@ -60,11 +62,25 @@ module Foobara
60
62
  super(*Util.args_and_opts_to_args(args, opts))
61
63
  end
62
64
 
63
- foobara_delegate :starting_desugarizers,
64
- :starting_desugarizers_with_inherited,
65
- :starting_desugarizers_without_inherited,
66
- :starting_type_declaration_validators,
67
- to: :class
65
+ def starting_desugarizers
66
+ self.class.starting_desugarizers
67
+ end
68
+
69
+ def starting_desugarizers_with_inherited
70
+ # :nocov:
71
+ self.class.starting_desugarizers_with_inherited
72
+ # :nocov:
73
+ end
74
+
75
+ def starting_desugarizers_without_inherited
76
+ # :nocov:
77
+ self.class.starting_desugarizers_without_inherited
78
+ # :nocov:
79
+ end
80
+
81
+ def starting_type_declaration_validators
82
+ self.class.starting_type_declaration_validators
83
+ end
68
84
 
69
85
  def to_type_transformer
70
86
  self.class::ToTypeTransformer.instance
@@ -1,3 +1,5 @@
1
+ require "foobara/concerns"
2
+
1
3
  module Foobara
2
4
  module TypeDeclarations
3
5
  module WithRegistries
@@ -29,14 +31,35 @@ module Foobara
29
31
  end
30
32
  end
31
33
 
32
- foobara_delegate :type_for_declaration,
33
- :type_declaration_handler_for,
34
- :lookup_type,
35
- :lookup_type!,
36
- :lookup_absolute_type!,
37
- :type_registered?,
38
- :handler_for_class,
39
- to: :class
34
+ def type_for_declaration(...)
35
+ self.class.type_for_declaration(...)
36
+ end
37
+
38
+ def type_declaration_handler_for(...)
39
+ self.class.type_declaration_handler_for(...)
40
+ end
41
+
42
+ def lookup_type(...)
43
+ self.class.lookup_type(...)
44
+ end
45
+
46
+ def lookup_type!(...)
47
+ self.class.lookup_type!(...)
48
+ end
49
+
50
+ def lookup_absolute_type!(...)
51
+ # :nocov:
52
+ self.class.lookup_absolute_type!(...)
53
+ # :nocov:
54
+ end
55
+
56
+ def type_registered?(...)
57
+ self.class.type_registered?(...)
58
+ end
59
+
60
+ def handler_for_class(...)
61
+ self.class.handler_for_class(...)
62
+ end
40
63
  end
41
64
  end
42
65
  end