Created
April 3, 2012 15:46
-
-
Save pdl/2293055 to your computer and use it in GitHub Desktop.
diff for recreating an apparent bug in from_json under Perl Dancer
This file contains 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
diff -r MyWeb-App/lib/MyWeb/App.pm MyWeb-App-2/lib/MyWeb/App.pm | |
3c3 | |
< | |
--- | |
> set serializer => 'JSON'; | |
9a10,14 | |
> post '/test/' => sub { | |
> my $data = from_json( param('json'), {utf8 => 0}); | |
> return { msg => $data->{q} } | |
> }; | |
> | |
10a16 | |
> | |
diff -r MyWeb-App/views/index.tt MyWeb-App-2/views/index.tt | |
1,148c1,16 | |
< | |
< <!-- | |
< Credit goes to the Ruby on Rails team for this page | |
< has been heavily based on the default Rails page that is | |
< built with a scaffolded application. | |
< | |
< Thanks a lot to them for their work. | |
< | |
< See Ruby on Rails if you want a kickass framework in Ruby: | |
< http://www.rubyonrails.org/ | |
< --> | |
< | |
< <div id="page"> | |
< <div id="sidebar"> | |
< <ul id="sidebar-items"> | |
< <li> | |
< <h3>Join the community</h3> | |
< <ul class="links"> | |
< | |
< <li><a href="http://perldancer.org/">PerlDancer</a></li> | |
< <li><a href="http://twitter.com/PerlDancer/">Official Twitter</a></li> | |
< <li><a href="http://github.com/sukria/Dancer/">GitHub Community</a></li> | |
< </ul> | |
< </li> | |
< | |
< <li> | |
< <h3>Browse the documentation</h3> | |
< | |
< <ul class="links"> | |
< <li><a | |
< href="http://search.cpan.org/dist/Dancer/lib/Dancer/Introduction.pod">Introduction</a></li> | |
< <li><a href="http://search.cpan.org/dist/Dancer/lib/Dancer/Cookbook.pod">Cookbook</a></li> | |
< <li><a href="http://search.cpan.org/dist/Dancer/lib/Dancer/Deployment.pod">Deployment Guide</a></li> | |
< <li><a | |
< href="http://search.cpan.org/dist/Dancer/lib/Dancer/Tutorial.pod" | |
< title="a tutorial to build a small blog engine with Dancer">Tutorial</a></li> | |
< </ul> | |
< </li> | |
< | |
< <li> | |
< <h3>Your application's environment</h3> | |
< | |
< <ul> | |
< <li>Location: <code>/cygdrive/r/daniel/cwlc/test/MyWeb-App</code></li> | |
< <li>Template engine: <code><% settings.template %></code></li> | |
< <li>Logger: <code><% settings.logger %></code></li> | |
< <li>Environment: <code><% settings.environment %></code></li> | |
< </ul> | |
< | |
< </li> | |
< </ul> | |
< | |
< </div> | |
< | |
< <div id="content"> | |
< <div id="header"> | |
< <h1>Perl is dancing</h1> | |
< <h2>You’ve joined the dance floor!</h2> | |
< </div> | |
< | |
< <div id="getting-started"> | |
< <h1>Getting started</h1> | |
< <h2>Here’s how to get dancing:</h2> | |
< | |
< <h3><a href="#" id="about_env_link">About your application's environment</a></h3> | |
< | |
< <div id="about-content" style="display: none;"> | |
< <table> | |
< <tbody> | |
< <tr> | |
< <td>Perl version</td> | |
< <td><tt><% perl_version %></tt></td> | |
< </tr> | |
< <tr> | |
< <td>Dancer version</td> | |
< <td><tt><% dancer_version %></tt></td> | |
< </tr> | |
< <tr> | |
< <td>Backend</td> | |
< <td><tt><% settings.apphandler %></tt></td> | |
< </tr> | |
< <tr> | |
< <td>Appdir</td> | |
< <td><tt>/cygdrive/r/daniel/cwlc/test/MyWeb-App</tt></td> | |
< </tr> | |
< <tr> | |
< <td>Template engine</td> | |
< <td><tt><% settings.template %></tt></td> | |
< </tr> | |
< <tr> | |
< <td>Logger engine</td> | |
< <td><tt><% settings.logger %></tt></td> | |
< </tr> | |
< <tr> | |
< <td>Running environment</td> | |
< <td><tt><% settings.environment %></tt></td> | |
< </tr> | |
< </tbody> | |
< </table> | |
< </div> | |
< | |
< <script type="text/javascript"> | |
< $('#about_env_link').click(function() { | |
< $('#about-content').slideToggle('fast', function() { | |
< // ok | |
< }); | |
< return( false ); | |
< }); | |
< </script> | |
< | |
< | |
< <ol> | |
< <li> | |
< <h2>Tune your application</h2> | |
< | |
< <p> | |
< Your application is configured via a global configuration file, | |
< <tt>config.yml</tt> and an "environment" configuration file, | |
< <tt>environments/development.yml</tt>. Edit those files if you | |
< want to change the settings of your application. | |
< </p> | |
< </li> | |
< | |
< <li> | |
< <h2>Add your own routes</h2> | |
< | |
< <p> | |
< The default route that displays this page can be removed, | |
< it's just here to help you get started. The template used to | |
< generate this content is located in | |
< <code>views/index.tt</code>. | |
< You can add some routes to <tt>lib/MyWeb/App.pm</tt>. | |
< </p> | |
< </li> | |
< | |
< <li> | |
< <h2>Enjoy web development again</h2> | |
< | |
< <p> | |
< Once you've made your changes, restart your standalone server | |
< (bin/app.pl) and you're ready to test your web application. | |
< </p> | |
< </li> | |
< | |
< </ol> | |
< </div> | |
< </div> | |
< </div> | |
--- | |
> <input id="q" value="café"/> | |
> <button onclick=" | |
> $.ajax({ | |
> url: '/test/', | |
> type: 'POST', | |
> data: { | |
> 'json': JSON.stringify( | |
> { 'q': $('#q').val() } | |
> ), | |
> }, | |
> dataType: 'json', | |
> success: function(data) { | |
> alert (data.msg); | |
> } | |
> }); | |
> ">Press Me!</button> | |
\ No newline at end of file |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment