Conversation
Changes in commit 5697359 broke the around modifier when used as a getter. Rather than revert, this commit cleans up the logical cases the modifier has to deal with: * If called as a "getter", the modifier is only passed two params. Check for that case and return the result of the original method. * If there is no serializer defined, encode the content and call the original method. * Otherwise serialize any content, then call the original method. Also reverts the changes to the before_serializer counts in t/hooks.t from the same commit.
Adds a test for an app with a serializer defined that has routes that * return no conent ( /nothing ) * return content to be serialized (all the others) verifying that the before_serializer hook can change the response content in both cases. See #1053.
If a serializer is defined, before_serializer hooks may change the response content, including the "default" of an empty string if no route returned any content for the request. Set the content to the empty string if the response has no defined content allowing any hooks to betriggered before constructing the PSGI response.
Member
Contributor
|
Fine with me. |
Member
Author
|
Merged as 4969c34 Thanks everyone! |
This was referenced Jan 5, 2016
Closed
Member
|
👍 |
xsawyerx
added a commit
that referenced
this pull request
Jan 12, 2016
[ BUG FIXES ]
* GH #1013, #1092: Remove race condition caused by caching available
engines. (Sawyer X, Menno Blom, Russell Jenkins)
* GH #1089: Exact macthing of route regex comments for tokens/splats.
(Sawyer X)
* GH #1079, #1082: Allow routes to return '0' as response content,
and serializer hooks are called when default response content is
to be returned. (Alberto Simões, Russell Jenkins)
* GH #1093, 1095: Use a dynamic TT2 INCLUDE_PATH to allow relative
views with relative includes; fixing regression introduced by #1037.
(Russell Jenkins)
* GH #1096, #1097: Return compatibility on Perl 5.8.x!
(Peter Mottram - @SysPete)
[ DOCUMENTATION ]
* GH #1076: Typo in Dancer2::Core::Hook POD. (Jonathan Scott Duff)
[ ENHANCEMENTS ]
* GH #1074: Add sample session engine config to skeleton app.
(Peter Mottram - @SysPete)
* GH #1088: Return route objects when defining new routes.
(Sawyer X)
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.
The change to allow
before_serializerhooks in commit 5697359 introduced a side effect for any code "getting" the response content. This reverts the changes to thearound contentmodifier made in that commit, resolving #1079 (while keeping @ambs test from #1080).However this undoes desired functionality from #1053 for a
before_serializerbeing able to change the response content in the case when no route returns content for the response. To trigger the serializer hooks in this case, set the response content attribute to the default (an empty string) when constructing the PSGI response (rather than inject the empty string in the PSGI response as done previously).( I'm keeping @mickeyn to his word for removing that around modifier )