Only deep_symbolize_keys when needed #588
Merged
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.
Following the tentative changes proposed in #587 and #583, we should avoid performing
deep_symbolize_keys
on the translations when it's unnecessary.This PR currently includes changes from #587 to showcase usage. I'll update it with changes from #583 too, if and when that merges.
This PR returns an additional attribute from the
load_*
methods to provide a flag of whether the keys have been symbolized at parse time. If so, we skipdeep_symbolize_keys
. This is a performance optimization that helps avoid traversing the object graph when we don't need to.I suppose we can also inject a magic key in the locale hash indicating whether keys are symbolized already, but I felt this approach was less intrusive.