This repository was archived by the owner on Oct 13, 2025. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 150
Introduces Hanami::Relation #579
Draft
mereghost
wants to merge
47
commits into
main
Choose a base branch
from
hanami-relation
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Update code for dry-types 1.2.2
* Update dry-types to 1.3 * Updates ROM dependencies * Rubocop patrolling the code.
This was @solnic suggestion and solved some issues at the cost of making all Entities Schemaless. Everything is messy and very broken at the moment but most of the basic functionality is there.
…an compare behaviour
5869001 to
650ca4e
Compare
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR is the first step towards bringing
modelcloser torom.In this we introduce the
Relationabstraction in the same terms asromdoes. This simplifies our code, boot process and exposes more of ROM to the users.Most important changes
Modules instead of suffixes
Repositories, Entities and Relations are expected to be under a certain directory structure that should reflect a module structure. This follows the same rules for ROM auto-registration feature
Hanami::Relation
This PR introduces
Hanami::Relationwhich maps directly to aROM::Relationand offers the exact same API (being only an alias to it).Hanami::Repository
Hanami::Repositorynow takes the name of its root relation. Overall functionality is the same.Hanami::Entity
Entity becomes a
ROM::StructTODO
Repositorymethod override (create, delete, update) (or remove if not needed)ROM::Structand othersHanami::Entityforcing bothRelationandRepositoryto have thestruct_namespacemacro on themIn the case above, the returned struct is in fact a
User, but ROM renamed itAuthoras the association is aliased (and this is kinda neat). Why this can become an issue? In the above example the project has anAuthorentity and relation, so this can get a little confusing.