-
-
Notifications
You must be signed in to change notification settings - Fork 152
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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 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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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
model
closer torom
.In this we introduce the
Relation
abstraction in the same terms asrom
does. 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::Relation
which maps directly to aROM::Relation
and offers the exact same API (being only an alias to it).Hanami::Repository
Hanami::Repository
now takes the name of its root relation. Overall functionality is the same.Hanami::Entity
Entity becomes a
ROM::Struct
TODO
Repository
method override (create, delete, update) (or remove if not needed)ROM::Struct
and othersHanami::Entity
forcing bothRelation
andRepository
to have thestruct_namespace
macro on themIn the case above, the returned struct is in fact a
User
, but ROM renamed itAuthor
as the association is aliased (and this is kinda neat). Why this can become an issue? In the above example the project has anAuthor
entity and relation, so this can get a little confusing.