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 commit introduces support for optional attributes. It avoids
silently assigning the value
nil
to attributes that are notpresent in the original input, but are attributes of the validator
object
Consider the following, similar to the example in the README:
This is correct. No assertions for
:author
are made, so no errorsare expected. When using the output of
#attributes
however, dataloss is very easy to occur.
That's because
#attributes
assignsnil
for "missing" attributes.This commit changes
#attributes
to not assignnil
to "missing"attributes, so they become optional.
It's still possible to make assertions on optional attributes:
The change is subtle, but existing code might expect missing
attributes to be `nil. If it is to be merged, I think it's wise to
bump the version to 2.0.