Skip to content

Instantly share code, notes, and snippets.

@pdl
Created April 3, 2012 15:46
Show Gist options
  • Save pdl/2293055 to your computer and use it in GitHub Desktop.
Save pdl/2293055 to your computer and use it in GitHub Desktop.
diff for recreating an apparent bug in from_json under Perl Dancer
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&rsquo;ve joined the dance floor!</h2>
< </div>
<
< <div id="getting-started">
< <h1>Getting started</h1>
< <h2>Here&rsquo;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&eacute;"/>
> <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