Read/write attribute directly from @attributes to match ActiveModel#122
Open
kainosnoema wants to merge 2 commits intocgriego:masterfrom
kainosnoema:activemodel-compatibility
Open
Read/write attribute directly from @attributes to match ActiveModel#122kainosnoema wants to merge 2 commits intocgriego:masterfrom kainosnoema:activemodel-compatibility
kainosnoema wants to merge 2 commits intocgriego:masterfrom
kainosnoema:activemodel-compatibility
Conversation
This allows overridden getters/setters to be written like ActiveModel getters/setters and call `read_attribute` and `write_attribute` to get the raw value from the attributes hash. This previous behavior was unexpected to users bring existing code from ActiveModel. The other benefit of this change is that `ActiveModel::Dirty` can be included and will actually behave properly since it overrides `write_attribute`, expecting it to be called when a setter is called. Signed-off-by: Evan Owen <kainosnoema@gmail.com>
This more closely matches the behavior of ActiveRecord, further reducing unexpected behavior for users familiar with AR. Signed-off-by: Evan Owen <kainosnoema@gmail.com>
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
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.
Resolves #113
This allows overridden getters/setters to be written like ActiveModel getters/setters and call
read_attributeandwrite_attributeto get the raw value from the attributes hash. This previous behavior was unexpected to users bringing existing code from ActiveModel.The other benefit of this change is that
ActiveModel::Dirtycan be included and will actually behave properly since it overrideswrite_attribute, expecting it to be called when a setter is called.While I feel strongly that this should be fixed, it's a very significant change and should probably accompany a decent version bump. Thoughts?