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.
Liquid::Any
is a alias toJSON::Any
, but in order to implementLiquid::Drop
the
Drop
must be part of theAny::Type
union, soJSON::Any
can't be used anymore.While "creating" the proper
Liquid::Any
class I noticed things breaking due to codethat was serializing then deserializing data when setting a context variable, since
Any
isn't
JSON::Any
anymore and serializing/deserialize data is very slow I fixed this aswell, but at the price of flexibility.
i.e.
To try to be backwards compatible I added few deprecated methods:
Context#[]=(String, Array(String))
Context#[]=(String, Hash(String, String))
Of course this doesn't cover everything that could be accepted with the JSON serialize/deserialize
approach, but I tried 😁.
Despite of this change be required for a
Liquid::Drop
implementation, IMO it's better to remove thisJSON hack from code anyway.