Resolve circular reference issue while generating JSON with Oj #250
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 addresses the problem identified in #70 where
oj_mimic_json
prevents the JSON response from being created.Oj prefers
as_json
toto_json
and previously the TimerStruct classes only implementedto_json
. This commit addsas_json
support that matches theto_json
implementation so either way will work.Specifically, the circular reference is between Page and Request (TimerStruct) objects where Page has reference to a
@attributes[:root]
Request and Request has a@page
attribute.I have not added test cases for this new code because
as_json
will only work if ActiveSupport extensions have loaded so that Hash hasas_json
support. The fix can be verified by adding theoj_mimic_json
gem to an existing app.