Hello community,

here is the log from the commit of package perl-Mojolicious for 
openSUSE:Factory checked in at 2015-10-19 22:52:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Mojolicious (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Mojolicious.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Mojolicious"

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Mojolicious/perl-Mojolicious.changes        
2015-09-30 05:52:43.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Mojolicious.new/perl-Mojolicious.changes   
2015-10-20 00:06:11.000000000 +0200
@@ -1,0 +2,27 @@
+Fri Oct 16 09:24:16 UTC 2015 - co...@suse.com
+
+- updated to 6.24
+   see /usr/share/doc/packages/perl-Mojolicious/Changes
+
+  6.24  2015-10-13
+    - Improved session security by not storing secrets in the stash and making
+      CSRF tokens much harder to guess.
+    - Improved commands to show all options that can affect their behavior.
+    - Fixed bug in Mojo::JSON::Pointer that prevented JSON Pointers with 
trailing
+      slash from working correctly. (dolmen)
+    - Fixed support for domains with trailing dot in Mojo::URL.
+
+-------------------------------------------------------------------
+Sat Oct 10 09:08:13 UTC 2015 - co...@suse.com
+
+- updated to 6.23
+   see /usr/share/doc/packages/perl-Mojolicious/Changes
+
+  6.23  2015-10-06
+    - Improved documentation browser CSS.
+    - Fixed bug in Mojo::Transaction::WebSocket where an unsupported protocol
+      could be selected automatically.
+    - Fixed input record separator bug in Mojo::Util. (Zoffix, sri)
+    - Fixed small redirect bug in Mojo::UserAgent::Transactor.
+
+-------------------------------------------------------------------

Old:
----
  Mojolicious-6.22.tar.gz

New:
----
  Mojolicious-6.24.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Mojolicious.spec ++++++
--- /var/tmp/diff_new_pack.98BY8n/_old  2015-10-20 00:06:12.000000000 +0200
+++ /var/tmp/diff_new_pack.98BY8n/_new  2015-10-20 00:06:12.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           perl-Mojolicious
-Version:        6.22
+Version:        6.24
 Release:        0
 %define cpan_name Mojolicious
 Summary:        Real-time web framework

++++++ Mojolicious-6.22.tar.gz -> Mojolicious-6.24.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/Changes new/Mojolicious-6.24/Changes
--- old/Mojolicious-6.22/Changes        2015-09-26 04:10:45.000000000 +0200
+++ new/Mojolicious-6.24/Changes        2015-10-13 21:37:08.000000000 +0200
@@ -1,4 +1,19 @@
 
+6.24  2015-10-13
+  - Improved session security by not storing secrets in the stash and making
+    CSRF tokens much harder to guess.
+  - Improved commands to show all options that can affect their behavior.
+  - Fixed bug in Mojo::JSON::Pointer that prevented JSON Pointers with trailing
+    slash from working correctly. (dolmen)
+  - Fixed support for domains with trailing dot in Mojo::URL.
+
+6.23  2015-10-06
+  - Improved documentation browser CSS.
+  - Fixed bug in Mojo::Transaction::WebSocket where an unsupported protocol
+    could be selected automatically.
+  - Fixed input record separator bug in Mojo::Util. (Zoffix, sri)
+  - Fixed small redirect bug in Mojo::UserAgent::Transactor.
+
 6.22  2015-09-26
   - Improved Mojo::JSON by reusing JSON::PP boolean constants.
   - Improved uniq method in Mojo::Collection to accept a callback. (CandyAngel)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/META.json 
new/Mojolicious-6.24/META.json
--- old/Mojolicious-6.22/META.json      2015-09-27 03:03:11.000000000 +0200
+++ new/Mojolicious-6.24/META.json      2015-10-14 00:54:09.000000000 +0200
@@ -4,7 +4,7 @@
       "Sebastian Riedel <s...@cpan.org>"
    ],
    "dynamic_config" : 0,
-   "generated_by" : "ExtUtils::MakeMaker version 7.0401, CPAN::Meta::Converter 
version 2.150005",
+   "generated_by" : "ExtUtils::MakeMaker version 7.0401, CPAN::Meta::Converter 
version 2.150001",
    "license" : [
       "artistic_2"
    ],
@@ -58,6 +58,5 @@
       },
       "x_IRC" : "irc://irc.perl.org/#mojo"
    },
-   "version" : "6.22",
-   "x_serialization_backend" : "JSON::PP version 2.27300"
+   "version" : "6.24"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/META.yml 
new/Mojolicious-6.24/META.yml
--- old/Mojolicious-6.22/META.yml       2015-09-27 03:03:10.000000000 +0200
+++ new/Mojolicious-6.24/META.yml       2015-10-14 00:54:09.000000000 +0200
@@ -7,7 +7,7 @@
 configure_requires:
   ExtUtils::MakeMaker: '0'
 dynamic_config: 0
-generated_by: 'ExtUtils::MakeMaker version 7.0401, CPAN::Meta::Converter 
version 2.150005'
+generated_by: 'ExtUtils::MakeMaker version 7.0401, CPAN::Meta::Converter 
version 2.150001'
 license: artistic_2
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -31,5 +31,4 @@
   homepage: http://mojolicio.us
   license: http://www.opensource.org/licenses/artistic-license-2.0
   repository: https://github.com/kraih/mojo.git
-version: '6.22'
-x_serialization_backend: 'CPAN::Meta::YAML version 0.016'
+version: '6.24'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojo/JSON/Pointer.pm 
new/Mojolicious-6.24/lib/Mojo/JSON/Pointer.pm
--- old/Mojolicious-6.22/lib/Mojo/JSON/Pointer.pm       2015-08-29 
13:14:10.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojo/JSON/Pointer.pm       2015-10-13 
15:36:18.000000000 +0200
@@ -13,7 +13,7 @@
 
   my $data = $self->data;
   return $data unless $pointer =~ s!^/!!;
-  for my $p ($pointer eq '' ? ($pointer) : (split '/', $pointer)) {
+  for my $p ($pointer eq '' ? ($pointer) : (split '/', $pointer, -1)) {
     $p =~ s!~1!/!g;
     $p =~ s/~0/~/g;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojo/Transaction/WebSocket.pm 
new/Mojolicious-6.24/lib/Mojo/Transaction/WebSocket.pm
--- old/Mojolicious-6.22/lib/Mojo/Transaction/WebSocket.pm      2015-08-29 
15:57:52.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojo/Transaction/WebSocket.pm      2015-10-06 
11:40:40.000000000 +0200
@@ -234,15 +234,11 @@
 }
 
 sub server_handshake {
-  my $self = shift;
-
+  my $self        = shift;
   my $res_headers = $self->res->headers;
   $res_headers->upgrade('websocket')->connection('Upgrade');
-  my $req_headers = $self->req->headers;
-  ($req_headers->sec_websocket_protocol // '') =~ /^\s*([^,]+)/
-    and $res_headers->sec_websocket_protocol($1);
   $res_headers->sec_websocket_accept(
-    _challenge($req_headers->sec_websocket_key));
+    _challenge($self->req->headers->sec_websocket_key));
 }
 
 sub server_open { shift->{open}++ }
@@ -590,7 +586,7 @@
 
 =head2 kept_alive
 
-  my $kept_alive = $ws->kept_alive;
+  my $bool = $ws->kept_alive;
 
 Connection has been kept alive.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojo/Transaction.pm 
new/Mojolicious-6.24/lib/Mojo/Transaction.pm
--- old/Mojolicious-6.22/lib/Mojo/Transaction.pm        2015-08-29 
13:17:09.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojo/Transaction.pm        2015-10-06 
11:40:40.000000000 +0200
@@ -131,8 +131,8 @@
 
 =head2 kept_alive
 
-  my $kept_alive = $tx->kept_alive;
-  $tx            = $tx->kept_alive(1);
+  my $bool = $tx->kept_alive;
+  $tx      = $tx->kept_alive($bool);
 
 Connection has been kept alive.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojo/URL.pm 
new/Mojolicious-6.24/lib/Mojo/URL.pm
--- old/Mojolicious-6.22/lib/Mojo/URL.pm        2015-08-29 16:33:18.000000000 
+0200
+++ new/Mojolicious-6.24/lib/Mojo/URL.pm        2015-10-13 21:40:10.000000000 
+0200
@@ -54,7 +54,7 @@
 
   # Decode
   return $self->host(join '.',
-    map { /^xn--(.+)$/ ? punycode_decode($_) : $_ } split /\./, shift)
+    map { /^xn--(.+)$/ ? punycode_decode($_) : $_ } split(/\./, shift, -1))
     if @_;
 
   # Check if host needs to be encoded
@@ -63,8 +63,8 @@
 
   # Encode
   return lc join '.',
-    map { /[^\x00-\x7f]/ ? ('xn--' . punycode_encode $_) : $_ } split /\./,
-    $host;
+    map { /[^\x00-\x7f]/ ? ('xn--' . punycode_encode $_) : $_ }
+    split(/\./, $host, -1);
 }
 
 sub is_abs { !!shift->scheme }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojo/UserAgent/Transactor.pm 
new/Mojolicious-6.24/lib/Mojo/UserAgent/Transactor.pm
--- old/Mojolicious-6.22/lib/Mojo/UserAgent/Transactor.pm       2015-09-22 
20:00:06.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojo/UserAgent/Transactor.pm       2015-10-06 
11:40:40.000000000 +0200
@@ -75,7 +75,7 @@
   $location = Mojo::URL->new($location);
   $location = $location->base($old->req->url)->to_abs unless $location->is_abs;
   my $proto = $location->protocol;
-  return undef unless $proto eq 'http' || $proto eq 'https';
+  return undef if ($proto ne 'http' && $proto ne 'https') || !$location->host;
 
   # Clone request if necessary
   my $new = Mojo::Transaction::HTTP->new;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojo/UserAgent.pm 
new/Mojolicious-6.24/lib/Mojo/UserAgent.pm
--- old/Mojolicious-6.22/lib/Mojo/UserAgent.pm  2015-09-18 14:30:58.000000000 
+0200
+++ new/Mojolicious-6.24/lib/Mojo/UserAgent.pm  2015-10-09 18:51:24.000000000 
+0200
@@ -253,7 +253,7 @@
   # Finish WebSocket
   return $self->_remove($id, 1) if $old->is_websocket;
 
-  if (my $jar = $self->cookie_jar) { $jar->collect($old) }
+  $self->cookie_jar->collect($old);
 
   # Upgrade connection to WebSocket
   if (my $new = $self->transactor->upgrade($old)) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojo/Util.pm 
new/Mojolicious-6.24/lib/Mojo/Util.pm
--- old/Mojolicious-6.22/lib/Mojo/Util.pm       2015-09-04 16:28:17.000000000 
+0200
+++ new/Mojolicious-6.24/lib/Mojo/Util.pm       2015-10-14 00:34:53.000000000 
+0200
@@ -31,7 +31,7 @@
 # To generate a new HTML entity table run this command
 # perl examples/entities.pl
 my %ENTITIES;
-while (my $line = <DATA>) {
+for my $line (split "\n", join('', <DATA>)) {
   next unless $line =~ /^(\S+)\s+U\+(\S+)(?:\s+U\+(\S+))?/;
   $ENTITIES{$1} = defined $3 ? (chr(hex $2) . chr(hex $3)) : chr(hex $2);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Command/cgi.pm 
new/Mojolicious-6.24/lib/Mojolicious/Command/cgi.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Command/cgi.pm 2015-08-29 
13:14:22.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Command/cgi.pm 2015-10-09 
20:01:54.000000000 +0200
@@ -26,7 +26,12 @@
   Usage: APPLICATION cgi [OPTIONS]
 
   Options:
-    --nph   Enable non-parsed-header mode
+    -h, --help          Show this summary of available options
+        --home <path>   Path to home directory of your application, defaults to
+                        the value of MOJO_HOME or auto detection
+    -m, --mode <name>   Operating mode for your application, defaults to the
+                        value of MOJO_MODE/PLACK_ENV or "development"
+        --nph           Enable non-parsed-header mode
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Command/cpanify.pm 
new/Mojolicious-6.24/lib/Mojolicious/Command/cpanify.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Command/cpanify.pm     2015-08-29 
13:14:22.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Command/cpanify.pm     2015-10-09 
20:05:03.000000000 +0200
@@ -52,6 +52,7 @@
     mojo cpanify -u sri -p secr3t Mojolicious-Plugin-MyPlugin-0.01.tar.gz
 
   Options:
+    -h, --help                  Show this summary of available options
     -p, --password <password>   PAUSE password
     -u, --user <name>           PAUSE username
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Command/daemon.pm 
new/Mojolicious-6.24/lib/Mojolicious/Command/daemon.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Command/daemon.pm      2015-08-29 
13:17:09.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Command/daemon.pm      2015-10-09 
20:04:58.000000000 +0200
@@ -45,11 +45,18 @@
                                          SOMAXCONN
     -c, --clients <number>               Maximum number of concurrent
                                          connections, defaults to 1000
+    -h, --help                           Show this summary of available options
+        --home <path>                    Path to home directory of your
+                                         application, defaults to the value of
+                                         MOJO_HOME or auto detection
     -i, --inactivity-timeout <seconds>   Inactivity timeout, defaults to the
                                          value of MOJO_INACTIVITY_TIMEOUT or 15
     -l, --listen <location>              One or more locations you want to
                                          listen on, defaults to the value of
                                          MOJO_LISTEN or "http://*:3000";
+    -m, --mode <name>                    Operating mode for your application,
+                                         defaults to the value of
+                                         MOJO_MODE/PLACK_ENV or "development"
     -p, --proxy                          Activate reverse proxy support,
                                          defaults to the value of
                                          MOJO_REVERSE_PROXY
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Command/eval.pm 
new/Mojolicious-6.24/lib/Mojolicious/Command/eval.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Command/eval.pm        2015-08-29 
13:14:23.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Command/eval.pm        2015-10-09 
20:04:25.000000000 +0200
@@ -37,8 +37,13 @@
     ./myapp.pl eval -V 'app->renderer->paths'
 
   Options:
-    -v, --verbose   Print return value to STDOUT
-    -V              Print returned data structure to STDOUT
+    -h, --help          Show this summary of available options
+        --home <path>   Path to home directory of your application, defaults to
+                        the value of MOJO_HOME or auto detection
+    -m, --mode <name>   Operating mode for your application, defaults to the
+                        value of MOJO_MODE/PLACK_ENV or "development"
+    -v, --verbose       Print return value to STDOUT
+    -V                  Print returned data structure to STDOUT
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Mojolicious-6.22/lib/Mojolicious/Command/generate/app.pm 
new/Mojolicious-6.24/lib/Mojolicious/Command/generate/app.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Command/generate/app.pm        
2015-08-29 13:17:09.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Command/generate/app.pm        
2015-10-09 12:35:05.000000000 +0200
@@ -53,7 +53,10 @@
 
 =head1 SYNOPSIS
 
-  Usage: APPLICATION generate app [NAME]
+  Usage: APPLICATION generate app [OPTIONS] [NAME]
+
+  Options:
+    -h, --help   Show this summary of available options
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Mojolicious-6.22/lib/Mojolicious/Command/generate/lite_app.pm 
new/Mojolicious-6.24/lib/Mojolicious/Command/generate/lite_app.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Command/generate/lite_app.pm   
2015-08-29 13:14:23.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Command/generate/lite_app.pm   
2015-10-09 12:34:45.000000000 +0200
@@ -21,7 +21,10 @@
 
 =head1 SYNOPSIS
 
-  Usage: APPLICATION generate lite_app [NAME]
+  Usage: APPLICATION generate lite_app [OPTIONS] [NAME]
+
+  Options:
+    -h, --help   Show this summary of available options
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Mojolicious-6.22/lib/Mojolicious/Command/generate/makefile.pm 
new/Mojolicious-6.24/lib/Mojolicious/Command/generate/makefile.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Command/generate/makefile.pm   
2015-08-29 13:14:24.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Command/generate/makefile.pm   
2015-10-09 12:35:19.000000000 +0200
@@ -18,7 +18,10 @@
 
 =head1 SYNOPSIS
 
-  Usage: APPLICATION generate makefile
+  Usage: APPLICATION generate makefile [OPTIONS]
+
+  Options:
+    -h, --help   Show this summary of available options
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Mojolicious-6.22/lib/Mojolicious/Command/generate/plugin.pm 
new/Mojolicious-6.24/lib/Mojolicious/Command/generate/plugin.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Command/generate/plugin.pm     
2015-08-29 13:14:24.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Command/generate/plugin.pm     
2015-10-09 12:35:34.000000000 +0200
@@ -35,7 +35,10 @@
 
 =head1 SYNOPSIS
 
-  Usage: APPLICATION generate plugin [NAME]
+  Usage: APPLICATION generate plugin [OPTIONS] [NAME]
+
+  Options:
+    -h, --help   Show this summary of available options
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Command/get.pm 
new/Mojolicious-6.24/lib/Mojolicious/Command/get.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Command/get.pm 2015-08-29 
16:35:36.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Command/get.pm 2015-10-09 
20:04:16.000000000 +0200
@@ -146,7 +146,14 @@
                                 detection
     -c, --content <content>     Content to send with request
     -H, --header <name:value>   Additional HTTP header
+    -h, --help                  Show this summary of available options
+        --home <path>           Path to home directory of your application,
+                                defaults to the value of MOJO_HOME or auto
+                                detection
     -M, --method <method>       HTTP method to use, defaults to "GET"
+    -m, --mode <name>           Operating mode for your application, defaults 
to
+                                the value of MOJO_MODE/PLACK_ENV or
+                                "development"
     -r, --redirect              Follow up to 10 redirects
     -v, --verbose               Print request and response headers to STDERR
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Command/inflate.pm 
new/Mojolicious-6.24/lib/Mojolicious/Command/inflate.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Command/inflate.pm     2015-08-29 
13:14:25.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Command/inflate.pm     2015-10-09 
20:04:05.000000000 +0200
@@ -38,7 +38,14 @@
 
 =head1 SYNOPSIS
 
-  Usage: APPLICATION inflate
+  Usage: APPLICATION inflate [OPTIONS]
+
+  Options:
+    -h, --help          Show this summary of available options
+        --home <path>   Path to home directory of your application, defaults to
+                        the value of MOJO_HOME or auto detection
+    -m, --mode <name>   Operating mode for your application, defaults to the
+                        value of MOJO_MODE/PLACK_ENV or "development"
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Command/prefork.pm 
new/Mojolicious-6.24/lib/Mojolicious/Command/prefork.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Command/prefork.pm     2015-08-29 
13:17:09.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Command/prefork.pm     2015-10-09 
20:06:57.000000000 +0200
@@ -58,6 +58,10 @@
     -G, --graceful-timeout <seconds>     Graceful timeout, defaults to 20.
     -I, --heartbeat-interval <seconds>   Heartbeat interval, defaults to 5
     -H, --heartbeat-timeout <seconds>    Heartbeat timeout, defaults to 20
+    -h, --help                           Show this summary of available options
+        --home <path>                    Path to home directory of your
+                                         application, defaults to the value of
+                                         MOJO_HOME or auto detection
     -i, --inactivity-timeout <seconds>   Inactivity timeout, defaults to the
                                          value of MOJO_INACTIVITY_TIMEOUT or 15
     -l, --listen <location>              One or more locations you want to
@@ -65,6 +69,9 @@
                                          MOJO_LISTEN or "http://*:3000";
     -M, --multi-accept <number>          Number of connections to accept at
                                          once, defaults to 50
+    -m, --mode <name>                    Operating mode for your application,
+                                         defaults to the value of
+                                         MOJO_MODE/PLACK_ENV or "development"
     -P, --pid-file <path>                Path to process id file, defaults to
                                          "prefork.pid" in a temporary diretory
     -p, --proxy                          Activate reverse proxy support,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Command/psgi.pm 
new/Mojolicious-6.24/lib/Mojolicious/Command/psgi.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Command/psgi.pm        2015-08-29 
13:14:25.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Command/psgi.pm        2015-10-09 
20:03:36.000000000 +0200
@@ -18,7 +18,14 @@
 
 =head1 SYNOPSIS
 
-  Usage: APPLICATION psgi
+  Usage: APPLICATION psgi [OPTIONS]
+
+  Options:
+    -h, --help          Show this summary of available options
+        --home <path>   Path to home directory of your application, defaults to
+                        the value of MOJO_HOME or auto detection
+    -m, --mode <name>   Operating mode for your application, defaults to the
+                        value of MOJO_MODE/PLACK_ENV or "development"
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Command/routes.pm 
new/Mojolicious-6.24/lib/Mojolicious/Command/routes.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Command/routes.pm      2015-08-29 
13:14:26.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Command/routes.pm      2015-10-09 
20:03:25.000000000 +0200
@@ -67,8 +67,13 @@
   Usage: APPLICATION routes [OPTIONS]
 
   Options:
-    -v, --verbose   Print additional details about routes, flags indicate
-                    C=Conditions, D=Detour, U=Under and W=WebSocket
+    -h, --help          Show this summary of available options
+        --home <path>   Path to home directory of your application, defaults to
+                        the value of MOJO_HOME or auto detection
+    -m, --mode <name>   Operating mode for your application, defaults to the
+                        value of MOJO_MODE/PLACK_ENV or "development"
+    -v, --verbose       Print additional details about routes, flags indicate
+                        C=Conditions, D=Detour, U=Under and W=WebSocket
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Command/test.pm 
new/Mojolicious-6.24/lib/Mojolicious/Command/test.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Command/test.pm        2015-08-29 
13:14:26.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Command/test.pm        2015-10-09 
12:59:37.000000000 +0200
@@ -41,6 +41,7 @@
     ./myapp.pl test -v t/foo/*.t
 
   Options:
+    -h, --help      Show this summary of available options
     -v, --verbose   Print verbose debug information to STDERR
 
 =head1 DESCRIPTION
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Command/version.pm 
new/Mojolicious-6.24/lib/Mojolicious/Command/version.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Command/version.pm     2015-08-29 
13:17:09.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Command/version.pm     2015-10-09 
12:51:01.000000000 +0200
@@ -53,7 +53,10 @@
 
 =head1 SYNOPSIS
 
-  Usage: APPLICATION version
+  Usage: APPLICATION version [OPTIONS]
+
+  Options:
+    -h, --help   Show this summary of available options
 
 =head1 DESCRIPTION
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Commands.pm 
new/Mojolicious-6.24/lib/Mojolicious/Commands.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Commands.pm    2015-08-29 
13:17:09.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Commands.pm    2015-10-09 
20:07:29.000000000 +0200
@@ -111,7 +111,7 @@
 
   Options (for all commands):
     -h, --help          Get more information on a specific command
-        --home <path>   Path to your applications home directory, defaults to
+        --home <path>   Path to home directory of your application, defaults to
                         the value of MOJO_HOME or auto detection
     -m, --mode <name>   Operating mode for your application, defaults to the
                         value of MOJO_MODE/PLACK_ENV or "development"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Controller.pm 
new/Mojolicious-6.24/lib/Mojolicious/Controller.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Controller.pm  2015-08-29 
13:17:09.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Controller.pm  2015-10-09 
17:40:02.000000000 +0200
@@ -78,7 +78,7 @@
 sub every_signed_cookie {
   my ($self, $name) = @_;
 
-  my $secrets = $self->stash->{'mojo.secrets'};
+  my $secrets = $self->app->secrets;
   my @results;
   for my $value (@{$self->every_cookie($name)}) {
 
@@ -283,8 +283,7 @@
   return $self->every_signed_cookie($name)->[-1] unless defined $value;
 
   # Response cookie
-  my $checksum
-    = Mojo::Util::hmac_sha1_sum($value, $self->stash->{'mojo.secrets'}[0]);
+  my $checksum = Mojo::Util::hmac_sha1_sum($value, $self->app->secrets->[0]);
   return $self->cookie($name, "$value--$checksum", $options);
 }
 
@@ -417,8 +416,9 @@
 L<Mojolicious::Routes::Match> object.
 
   # Introspect
-  my $controller = $c->match->endpoint->pattern->defaults->{controller};
-  my $action     = $c->match->stack->[-1]{action};
+  my $name   = $c->match->endpoint->name;
+  my $foo    = $c->match->endpoint->pattern->defaults->{foo};
+  my $action = $c->match->stack->[-1]{action};
 
 =head2 tx
 
@@ -764,12 +764,12 @@
 
 Automatically select best possible representation for resource from C<Accept>
 request header, C<format> stash value or C<format> C<GET>/C<POST> parameter,
-defaults to rendering an empty C<204> response. Each representation can be
-handled with a callback or a hash reference containing arguments to be passed
-to L</"render">. Since browsers often don't really know what they actually
-want, unspecific C<Accept> request headers with more than one MIME type will be
-ignored, unless the C<X-Requested-With> header is set to the value
-C<XMLHttpRequest>.
+defaults to L<Mojolicious::Renderer/"default_format"> or rendering an empty
+C<204> response. Each representation can be handled with a callback or a hash
+reference containing arguments to be passed to L</"render">. Since browsers
+often don't really know what they actually want, unspecific C<Accept> request
+headers with more than one MIME type will be ignored, unless the
+C<X-Requested-With> header is set to the value C<XMLHttpRequest>.
 
   # Everything else than "json" and "xml" gets a 204 response
   $c->respond_to(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Guides/Growing.pod 
new/Mojolicious-6.24/lib/Mojolicious/Guides/Growing.pod
--- old/Mojolicious-6.22/lib/Mojolicious/Guides/Growing.pod     2015-08-13 
03:30:53.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Guides/Growing.pod     2015-10-06 
11:40:40.000000000 +0200
@@ -213,12 +213,30 @@
 will be passed on to L<Mojolicious>, where it will be handled in a few simple
 steps.
 
-  1. Check if a static file exists that would meet the requirements.
-  2. Try to find a route that would meet the requirements.
-  3. Dispatch the request to this route, usually reaching one or more actions.
-  4. Process the request, maybe generating a response with the renderer.
-  5. Return control to the web server, and if no response has been generated
-     yet, wait for a non-blocking operation to do so through the event loop.
+=over 2
+
+=item  1.
+
+Check if a static file exists that would meet the requirements.
+
+=item 2.
+
+Try to find a route that would meet the requirements.
+
+=item 3.
+
+Dispatch the request to this route, usually reaching one or more actions.
+
+=item 4.
+
+Process the request, maybe generating a response with the renderer.
+
+=item 5.
+
+Return control to the web server, and if no response has been generated yet,
+wait for a non-blocking operation to do so through the event loop.
+
+=back
 
 With our application the router would have found an action in step 2, and
 rendered some text in step 4, resulting in an HTTP response like this being
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Mojolicious-6.22/lib/Mojolicious/Guides/Rendering.pod 
new/Mojolicious-6.24/lib/Mojolicious/Guides/Rendering.pod
--- old/Mojolicious-6.22/lib/Mojolicious/Guides/Rendering.pod   2015-08-19 
05:20:41.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Guides/Rendering.pod   2015-10-12 
18:40:15.000000000 +0200
@@ -1442,10 +1442,27 @@
     return 1;
   });
 
-  get '/' => {storable => {i => '♥ mojolicious'}, handler => 'storable'};
+  # Set "handler" value automatically if "storable" value is set already
+  app->hook(before_render => sub {
+    my ($c, $args) = @_;
+    $args->{handler} = 'storable'
+      if exists $args->{storable} || exists $c->stash->{storable};
+  });
+
+  get '/' => {storable => {i => '♥ mojolicious'}};
 
   app->start;
 
+The hook L<Mojolicious/"before_render"> can be used to make stash values like
+C<storable> special, so that they no longer require a C<handler> value to be 
set
+explicitly.
+
+  # Explicit "handler" value
+  $c->render(storable => {i => '♥ mojolicious'}, handler => 'storable');
+
+  # Implicit "handler" value (with "before_render" hook)
+  $c->render(storable => {i => '♥ mojolicious'});
+
 =head1 MORE
 
 You can continue with L<Mojolicious::Guides> now or take a look at the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Mojolicious-6.22/lib/Mojolicious/Plugin/DefaultHelpers.pm 
new/Mojolicious-6.24/lib/Mojolicious/Plugin/DefaultHelpers.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Plugin/DefaultHelpers.pm       
2015-08-29 13:17:09.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Plugin/DefaultHelpers.pm       
2015-10-12 14:04:10.000000000 +0200
@@ -5,7 +5,7 @@
 use Mojo::Collection;
 use Mojo::Exception;
 use Mojo::IOLoop;
-use Mojo::Util qw(dumper sha1_sum steady_time);
+use Mojo::Util qw(dumper hmac_sha1_sum steady_time);
 
 sub register {
   my ($self, $app) = @_;
@@ -67,8 +67,8 @@
 
 sub _csrf_token {
   my $c = shift;
-  $c->session->{csrf_token}
-    ||= sha1_sum $c->app->secrets->[0] . steady_time . rand 999;
+  return $c->session->{csrf_token}
+    ||= hmac_sha1_sum $$ . steady_time . rand 999, $c->app->secrets->[0];
 }
 
 sub _current_route {
@@ -477,6 +477,8 @@
 
 Alias for L<Mojolicious::Controller/"url_for">.
 
+  %= url_for('/index.html')->query(foo => 'bar')
+
 =head2 url_with
 
   %= url_with 'named', controller => 'bar', action => 'baz'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Plugin/Mount.pm 
new/Mojolicious-6.24/lib/Mojolicious/Plugin/Mount.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Plugin/Mount.pm        2015-08-29 
13:14:30.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Plugin/Mount.pm        2015-10-09 
17:51:55.000000000 +0200
@@ -8,6 +8,7 @@
 
   my $path  = (keys %$conf)[0];
   my $embed = Mojo::Server->new->load_app($conf->{$path});
+  $embed->secrets($app->secrets);
 
   # Extract host
   my $host;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Renderer.pm 
new/Mojolicious-6.24/lib/Mojolicious/Renderer.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Renderer.pm    2015-08-29 
13:17:09.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Renderer.pm    2015-10-06 
20:44:04.000000000 +0200
@@ -296,12 +296,16 @@
   # Add another class with templates in DATA section
   push @{$renderer->classes}, 'Mojolicious::Plugin::Fun';
 
+  # Add another class with templates in DATA section and higher precedence
+  unshift @{$renderer->classes}, 'Mojolicious::Plugin::MoreFun';
+
 =head2 default_format
 
   my $default = $renderer->default_format;
   $renderer   = $renderer->default_format('html');
 
-The default format to render if C<format> is not set in the stash.
+The default format to render if C<format> is not set in the stash, defaults to
+C<html>.
 
 =head2 default_handler
 
@@ -345,6 +349,9 @@
   # Add another "templates" directory
   push @{$renderer->paths}, '/home/sri/templates';
 
+  # Add another "templates" directory with higher precedence
+  unshift @{$renderer->paths}, '/home/sri/themes/blue/templates';
+
 =head1 METHODS
 
 L<Mojolicious::Renderer> inherits all methods from L<Mojo::Base> and implements
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Routes/Route.pm 
new/Mojolicious-6.24/lib/Mojolicious/Routes/Route.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Routes/Route.pm        2015-08-29 
13:17:09.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Routes/Route.pm        2015-10-06 
11:40:40.000000000 +0200
@@ -309,6 +309,7 @@
 request methods or all. See also L<Mojolicious::Guides::Tutorial> for many more
 argument variations.
 
+  # Route with destination
   $r->any('/user')->to('user#whatever');
 
 =head2 delete
@@ -321,6 +322,7 @@
 Generate L<Mojolicious::Routes::Route> object matching only C<DELETE> requests.
 See also L<Mojolicious::Guides::Tutorial> for many more argument variations.
 
+  # Route with destination
   $r->delete('/user')->to('user#remove');
 
 =head2 detour
@@ -340,6 +342,7 @@
 Find child route by name, custom names have precedence over automatically
 generated ones.
 
+  # Change default parameters of a named route
   $r->find('show_user')->to(foo => 'bar');
 
 =head2 get
@@ -352,6 +355,7 @@
 Generate L<Mojolicious::Routes::Route> object matching only C<GET> requests.
 See also L<Mojolicious::Guides::Tutorial> for many more argument variations.
 
+  # Route with destination
   $r->get('/user')->to('user#show');
 
 =head2 has_custom_name
@@ -388,6 +392,7 @@
 the route pattern. Note that the name C<current> is reserved for referring to
 the current route.
 
+  # Route with destination and custom name
   $r->get('/user')->to('user#show')->name('show_user');
 
 =head2 new
@@ -411,6 +416,7 @@
 requests. See also L<Mojolicious::Guides::Tutorial> for many more argument
 variations.
 
+  # Route with destination
   $r->options('/user')->to('user#overview');
 
 =head2 over
@@ -423,6 +429,7 @@
 Activate conditions for this route. Note that this automatically disables the
 routing cache, since conditions are too complex for caching.
 
+  # Route with condition and destination
   $r->get('/foo')->over(host => qr/mojolicio\.us/)->to('foo#bar');
 
 =head2 parse
@@ -443,6 +450,7 @@
 Generate L<Mojolicious::Routes::Route> object matching only C<PATCH> requests.
 See also L<Mojolicious::Guides::Tutorial> for many more argument variations.
 
+  # Route with destination
   $r->patch('/user')->to('user#update');
 
 =head2 post
@@ -455,6 +463,7 @@
 Generate L<Mojolicious::Routes::Route> object matching only C<POST> requests.
 See also L<Mojolicious::Guides::Tutorial> for many more argument variations.
 
+  # Route with destination
   $r->post('/user')->to('user#create');
 
 =head2 put
@@ -467,6 +476,7 @@
 Generate L<Mojolicious::Routes::Route> object matching only C<PUT> requests.
 See also L<Mojolicious::Guides::Tutorial> for many more argument variations.
 
+  # Route with destination
   $r->put('/user')->to('user#replace');
 
 =head2 remove
@@ -545,6 +555,7 @@
 intermediate destination. See also L<Mojolicious::Guides::Tutorial> for many
 more argument variations.
 
+  # Intermediate destination and prefix shared between two routes
   my $auth = $r->under('/user')->to('user#auth');
   $auth->get('/show')->to('#show');
   $auth->post('/create')->to('#create');
@@ -559,6 +570,7 @@
 Restrict HTTP methods this route is allowed to handle, defaults to no
 restrictions.
 
+  # Route with two methods and destination
   $r->route('/foo')->via(qw(GET POST))->to('foo#bar');
 
 =head2 websocket
@@ -572,6 +584,7 @@
 handshakes. See also L<Mojolicious::Guides::Tutorial> for many more argument
 variations.
 
+  # Route with destination
   $r->websocket('/echo')->to('example#echo');
 
 =head1 AUTOLOAD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious/Static.pm 
new/Mojolicious-6.24/lib/Mojolicious/Static.pm
--- old/Mojolicious-6.22/lib/Mojolicious/Static.pm      2015-08-29 
13:17:09.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/Static.pm      2015-10-06 
20:44:09.000000000 +0200
@@ -184,6 +184,9 @@
   # Add another class with static files in DATA section
   push @{$static->classes}, 'Mojolicious::Plugin::Fun';
 
+  # Add another class with static files in DATA section and higher precedence
+  unshift @{$static->classes}, 'Mojolicious::Plugin::MoreFun';
+
 =head2 paths
 
   my $paths = $static->paths;
@@ -194,6 +197,9 @@
   # Add another "public" directory
   push @{$static->paths}, '/home/sri/public';
 
+  # Add another "public" directory with higher precedence
+  unshift @{$static->paths}, '/home/sri/themes/blue/public';
+
 =head1 METHODS
 
 L<Mojolicious::Static> inherits all methods from L<Mojo::Base> and implements
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Mojolicious-6.22/lib/Mojolicious/templates/perldoc.html.ep 
new/Mojolicious-6.24/lib/Mojolicious/templates/perldoc.html.ep
--- old/Mojolicious-6.22/lib/Mojolicious/templates/perldoc.html.ep      
2015-08-13 03:31:46.000000000 +0200
+++ new/Mojolicious-6.24/lib/Mojolicious/templates/perldoc.html.ep      
2015-10-06 11:40:40.000000000 +0200
@@ -16,6 +16,15 @@
         line-height: 1.5em;
         margin: 0;
       }
+      dd {
+        margin: 0;
+        margin-left: 2em;
+      }
+      dt {
+        color: #2a2a2a;
+        font-weight: bold;
+        margin-left: 1em;
+      }
       :not(pre) > code {
         background-color: rgba(0, 0, 0, 0.04);
         border-radius: 3px;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Mojolicious.pm 
new/Mojolicious-6.24/lib/Mojolicious.pm
--- old/Mojolicious-6.22/lib/Mojolicious.pm     2015-09-23 03:05:07.000000000 
+0200
+++ new/Mojolicious-6.24/lib/Mojolicious.pm     2015-10-13 15:43:54.000000000 
+0200
@@ -43,7 +43,7 @@
 has validator => sub { Mojolicious::Validator->new };
 
 our $CODENAME = 'Clinking Beer Mugs';
-our $VERSION  = '6.22';
+our $VERSION  = '6.24';
 
 sub AUTOLOAD {
   my $self = shift;
@@ -65,7 +65,6 @@
   # Embedded application
   my $stash = {};
   if (my $sub = $tx->can('stash')) { ($stash, $tx) = ($tx->$sub, $tx->tx) }
-  $stash->{'mojo.secrets'} //= $self->secrets;
 
   # Build default controller
   my $defaults = $self->defaults;
@@ -437,6 +436,9 @@
   # Add another "templates" directory
   push @{$app->renderer->paths}, '/home/sri/templates';
 
+  # Add another "templates" directory with higher precedence
+  unshift @{$app->renderer->paths}, '/home/sri/themes/blue/templates';
+
   # Add another class with templates in DATA section
   push @{$app->renderer->classes}, 'Mojolicious::Plugin::Fun';
 
@@ -497,6 +499,9 @@
   # Add another "public" directory
   push @{$app->static->paths}, '/home/sri/public';
 
+  # Add another "public" directory with higher precedence
+  unshift @{$app->static->paths}, '/home/sri/themes/blue/public';
+
   # Add another class with static files in DATA section
   push @{$app->static->classes}, 'Mojolicious::Plugin::Fun';
 
@@ -944,6 +949,8 @@
 
 Oleg Zhelo
 
+Olivier Mengue
+
 Pascal Gaudette
 
 Paul Evans
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/lib/Test/Mojo.pm 
new/Mojolicious-6.24/lib/Test/Mojo.pm
--- old/Mojolicious-6.22/lib/Test/Mojo.pm       2015-09-21 22:13:57.000000000 
+0200
+++ new/Mojolicious-6.24/lib/Test/Mojo.pm       2015-10-09 18:54:52.000000000 
+0200
@@ -259,7 +259,7 @@
 
 sub reset_session {
   my $self = shift;
-  if (my $jar = $self->ua->cookie_jar) { $jar->empty }
+  $self->ua->cookie_jar->empty;
   return $self->tx(undef);
 }
 
@@ -497,9 +497,7 @@
   # More specific tests
   is $t->tx->res->json->{foo}, 'bar', 'right value';
   ok $t->tx->res->content->is_multipart, 'multipart content';
-
-  # Test custom transactions
-  $t->tx($t->tx->previous)->status_is(302)->header_like(Location => qr/foo/);
+  is $t->tx->previous->res->code, 302, 'right status';
 
 =head2 ua
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/t/mojo/json_pointer.t 
new/Mojolicious-6.24/t/mojo/json_pointer.t
--- old/Mojolicious-6.22/t/mojo/json_pointer.t  2015-08-29 01:31:18.000000000 
+0200
+++ new/Mojolicious-6.24/t/mojo/json_pointer.t  2015-10-13 16:12:04.000000000 
+0200
@@ -4,8 +4,9 @@
 use Mojo::JSON::Pointer;
 
 # "contains" (hash)
-my $pointer = Mojo::JSON::Pointer->new({foo => 23});
+my $pointer = Mojo::JSON::Pointer->new({foo => 23, '' => 24});
 ok $pointer->contains(''),     'contains ""';
+ok $pointer->contains('/'),    'contains "/"';
 ok $pointer->contains('/foo'), 'contains "/foo"';
 ok !$pointer->contains('/bar'), 'does not contains "/bar"';
 ok $pointer->new({foo => {bar => undef}})->contains('/foo/bar'),
@@ -18,15 +19,21 @@
 ok !$pointer->contains('/foo/9'),   'does not contain "/foo/9"';
 ok !$pointer->contains('/foo/bar'), 'does not contain "/foo/bar"';
 ok !$pointer->contains('/0'),       'does not contain "/0"';
+ok !$pointer->contains('/'),        'does not contain "/"';
 
 # "get" (hash)
-$pointer = Mojo::JSON::Pointer->new({foo => 'bar'});
-is_deeply $pointer->get(''), {foo => 'bar'}, '"" is "{foo => "bar"}"';
+$pointer = Mojo::JSON::Pointer->new({foo => 'bar', '' => 'baz'});
+is_deeply $pointer->get(''), {foo => 'bar', '' => 'baz'},
+  '"" is "{foo => "bar", "" => "baz"}"';
+is $pointer->get('/'),    'baz', '"/" is "baz"';
 is $pointer->get('/foo'), 'bar', '"/foo" is "bar"';
 is $pointer->new({foo => {bar => 42}})->get('/foo/bar'), 42,
   '"/foo/bar" is "42"';
 is_deeply $pointer->new({foo => {23 => {baz => 0}}})->get('/foo/23'),
   {baz => 0}, '"/foo/23" is "{baz => 0}"';
+is $pointer->new({foo => {'' => 42}})->get('/foo/'), 42, '"/foo/" is "42"';
+is $pointer->new({foo => {'' => {'' => 42}}})->get('/foo//'), 42,
+  '"/foo//" is "42"';
 
 # "get" (mixed)
 is_deeply $pointer->new({foo => {bar => [1, 2, 3]}})->get('/foo/bar'),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/t/mojo/transactor.t 
new/Mojolicious-6.24/t/mojo/transactor.t
--- old/Mojolicious-6.22/t/mojo/transactor.t    2015-09-23 00:47:25.000000000 
+0200
+++ new/Mojolicious-6.24/t/mojo/transactor.t    2015-10-06 11:40:40.000000000 
+0200
@@ -825,6 +825,10 @@
 $tx->res->code(302);
 $tx->res->headers->location('data:image/png;base64,helloworld123');
 is $t->redirect($tx), undef, 'unsupported redirect';
+$tx = $t->tx(GET => 'http://mojolicio.us/foo');
+$tx->res->code(302);
+$tx->res->headers->location('http:');
+is $t->redirect($tx), undef, 'unsupported redirect';
 
 # 302 redirect (relative path and query)
 $tx = $t->tx(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/t/mojo/url.t 
new/Mojolicious-6.24/t/mojo/url.t
--- old/Mojolicious-6.22/t/mojo/url.t   2015-08-29 01:31:30.000000000 +0200
+++ new/Mojolicious-6.24/t/mojo/url.t   2015-10-13 21:35:52.000000000 +0200
@@ -654,6 +654,12 @@
 is $url->path, '/100%25_fun', 'right path';
 is "$url", 'http://mojolicio.us/100%25_fun', 'right format';
 
+# Trailing dot
+$url = Mojo::URL->new('http://☃.net./♥');
+is $url->ihost, 'xn--n3h.net.', 'right internationalized host';
+is $url->host,  '☃.net.',     'right host';
+is "$url", 'http://xn--n3h.net./%E2%99%A5', 'right format';
+
 # No charset
 $url = Mojo::URL->new;
 $url->path->charset(undef);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/t/mojo/user_agent_online.t 
new/Mojolicious-6.24/t/mojo/user_agent_online.t
--- old/Mojolicious-6.22/t/mojo/user_agent_online.t     2015-08-29 
01:31:31.000000000 +0200
+++ new/Mojolicious-6.24/t/mojo/user_agent_online.t     2015-10-09 
04:53:16.000000000 +0200
@@ -204,10 +204,9 @@
 # HTTPS request that requires SNI
 SKIP: {
   skip 'SNI support required!', 1 unless IO::Socket::SSL->can_client_sni;
-
-  $tx = $ua->get('https://google.de');
-  like $ua->ioloop->stream($tx->connection)
-    ->handle->peer_certificate('commonName'), qr/google\.de/, 'right name';
+  $tx = $ua->get('https://cpanmin.us');
+  is $tx->res->code, 302, 'right status';
+  like $tx->res->headers->location, qr/github/, 'right "Location" header';
 }
 
 # Fresh user agent again
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/t/mojolicious/commands.t 
new/Mojolicious-6.24/t/mojolicious/commands.t
--- old/Mojolicious-6.22/t/mojolicious/commands.t       2015-08-29 
01:31:37.000000000 +0200
+++ new/Mojolicious-6.24/t/mojolicious/commands.t       2015-10-09 
13:04:59.000000000 +0200
@@ -116,21 +116,24 @@
   local *STDOUT = $handle;
   $commands->run('help', 'generate', 'lite_app');
 }
-like $buffer, qr/Usage: APPLICATION generate lite_app \[NAME\]/, 'right 
output';
+like $buffer, qr/Usage: APPLICATION generate lite_app \[OPTIONS\] \[NAME\]/,
+  'right output';
 $buffer = '';
 {
   open my $handle, '>', \$buffer;
   local *STDOUT = $handle;
   $commands->run('generate', 'app', '-h');
 }
-like $buffer, qr/Usage: APPLICATION generate app \[NAME\]/, 'right output';
+like $buffer, qr/Usage: APPLICATION generate app \[OPTIONS\] \[NAME\]/,
+  'right output';
 $buffer = '';
 {
   open my $handle, '>', \$buffer;
   local *STDOUT = $handle;
   $commands->run('generate', 'lite_app', '--help');
 }
-like $buffer, qr/Usage: APPLICATION generate lite_app \[NAME\]/, 'right 
output';
+like $buffer, qr/Usage: APPLICATION generate lite_app \[OPTIONS\] \[NAME\]/,
+  'right output';
 
 # get
 require Mojolicious::Command::get;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/t/mojolicious/lite_app.t 
new/Mojolicious-6.24/t/mojolicious/lite_app.t
--- old/Mojolicious-6.22/t/mojolicious/lite_app.t       2015-08-29 
01:31:42.000000000 +0200
+++ new/Mojolicious-6.24/t/mojolicious/lite_app.t       2015-10-09 
18:56:50.000000000 +0200
@@ -969,9 +969,10 @@
   ->text_is('div#☃' => 'Redirect works!')->text_unlike('div#☃' => qr/Foo/)
   ->text_like('div#☃' => qr/^Redirect/);
 $t->ua->max_redirects(0);
-Test::Mojo->new->tx($t->tx->previous)->status_is(302)
-  ->header_is(Server => 'Mojolicious (Perl)')
-  ->header_like(Location => qr!/template.txt$!)->content_is('');
+is $t->tx->previous->res->code, 302, 'right status';
+like $t->tx->previous->res->headers->location, qr!/template.txt$!,
+  'right "Location" value';
+is $t->tx->previous->res->body, '', 'right content';
 
 # Request with koi8-r content
 my $koi8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-6.22/t/mojolicious/websocket_lite_app.t 
new/Mojolicious-6.24/t/mojolicious/websocket_lite_app.t
--- old/Mojolicious-6.22/t/mojolicious/websocket_lite_app.t     2015-08-29 
01:31:52.000000000 +0200
+++ new/Mojolicious-6.24/t/mojolicious/websocket_lite_app.t     2015-10-06 
11:40:40.000000000 +0200
@@ -123,7 +123,7 @@
 my $headers = {DNT => 1, 'Sec-WebSocket-Key' => 'NTA2MDAyMDU1NjMzNjkwMg=='};
 $t->websocket_ok('/echo' => $headers => ['foo', 'bar', 'baz'])
   ->header_is('Sec-WebSocket-Accept'   => 'I+x5C3/LJxrmDrWw42nMP4pCSes=')
-  ->header_is('Sec-WebSocket-Protocol' => 'foo')->send_ok('hello')
+  ->header_is('Sec-WebSocket-Protocol' => undef)->send_ok('hello')
   ->message_ok->message_is('echo: hello')->finish_ok;
 is $t->tx->req->headers->dnt, 1, 'right "DNT" value';
 is $t->tx->req->headers->sec_websocket_protocol, 'foo, bar, baz',


Reply via email to