Hello community, here is the log from the commit of package perl-Mojolicious for openSUSE:Factory checked in at 2017-06-07 09:52:13 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Mojolicious (Old) and /work/SRC/openSUSE:Factory/.perl-Mojolicious.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Mojolicious" Wed Jun 7 09:52:13 2017 rev:68 rq:499918 version:7.32 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Mojolicious/perl-Mojolicious.changes 2017-05-10 20:34:43.408558452 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Mojolicious.new/perl-Mojolicious.changes 2017-06-07 09:52:16.177424144 +0200 @@ -1,0 +2,13 @@ +Wed May 31 06:09:13 UTC 2017 - [email protected] + +- updated to 7.32 + see /usr/share/doc/packages/perl-Mojolicious/Changes + + 7.32 2017-05-28 + - Added -f option to get command. + - Improved get command with support for passing request data by redirecting + STDIN. + - Fixed memory leak in Mojo::IOLoop::Client that sometimes prevented the + connect timeout from working correctly for TLS handshakes. + +------------------------------------------------------------------- Old: ---- Mojolicious-7.31.tar.gz New: ---- Mojolicious-7.32.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Mojolicious.spec ++++++ --- /var/tmp/diff_new_pack.6Osez6/_old 2017-06-07 09:52:16.665355190 +0200 +++ /var/tmp/diff_new_pack.6Osez6/_new 2017-06-07 09:52:16.669354625 +0200 @@ -17,7 +17,7 @@ Name: perl-Mojolicious -Version: 7.31 +Version: 7.32 Release: 0 %define cpan_name Mojolicious Summary: Real-time web framework ++++++ Mojolicious-7.31.tar.gz -> Mojolicious-7.32.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.31/Changes new/Mojolicious-7.32/Changes --- old/Mojolicious-7.31/Changes 2017-04-23 20:56:24.000000000 +0200 +++ new/Mojolicious-7.32/Changes 2017-05-28 13:58:23.000000000 +0200 @@ -1,4 +1,11 @@ +7.32 2017-05-28 + - Added -f option to get command. + - Improved get command with support for passing request data by redirecting + STDIN. + - Fixed memory leak in Mojo::IOLoop::Client that sometimes prevented the + connect timeout from working correctly for TLS handshakes. + 7.31 2017-04-23 - Removed deprecated files, slurp and spurt functions from Mojo::Util. - Removed deprecated parts attribute from Mojo::Home. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.31/META.json new/Mojolicious-7.32/META.json --- old/Mojolicious-7.31/META.json 2017-04-24 09:49:57.000000000 +0200 +++ new/Mojolicious-7.32/META.json 2017-05-30 19:07:29.000000000 +0200 @@ -4,13 +4,13 @@ "Sebastian Riedel <[email protected]>" ], "dynamic_config" : 0, - "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150010", + "generated_by" : "ExtUtils::MakeMaker version 7.26, CPAN::Meta::Converter version 2.150010", "license" : [ "artistic_2" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", - "version" : "2" + "version" : 2 }, "name" : "Mojolicious", "no_index" : { @@ -58,6 +58,6 @@ }, "x_IRC" : "irc://irc.perl.org/#mojo" }, - "version" : "7.31", - "x_serialization_backend" : "JSON::PP version 2.27400" + "version" : "7.32", + "x_serialization_backend" : "JSON::PP version 2.94" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.31/META.yml new/Mojolicious-7.32/META.yml --- old/Mojolicious-7.31/META.yml 2017-04-24 09:49:56.000000000 +0200 +++ new/Mojolicious-7.32/META.yml 2017-05-30 19:07:29.000000000 +0200 @@ -7,7 +7,7 @@ configure_requires: ExtUtils::MakeMaker: '0' dynamic_config: 0 -generated_by: 'ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 2.150010' +generated_by: 'ExtUtils::MakeMaker version 7.26, CPAN::Meta::Converter version 2.150010' license: artistic_2 meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -31,5 +31,5 @@ homepage: http://mojolicious.org license: http://www.opensource.org/licenses/artistic-license-2.0 repository: https://github.com/kraih/mojo.git -version: '7.31' +version: '7.32' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.31/lib/Mojo/IOLoop/Client.pm new/Mojolicious-7.32/lib/Mojo/IOLoop/Client.pm --- old/Mojolicious-7.31/lib/Mojo/IOLoop/Client.pm 2017-02-24 15:57:10.000000000 +0100 +++ new/Mojolicious-7.32/lib/Mojo/IOLoop/Client.pm 2017-05-25 12:06:29.000000000 +0200 @@ -165,6 +165,7 @@ $reactor->remove($handle); # Start TLS handshake + weaken $self; my $tls = Mojo::IOLoop::TLS->new($handle)->reactor($self->reactor); $tls->on(upgrade => sub { $self->_cleanup->emit(connect => pop) }); $tls->on(error => sub { $self->emit(error => pop) }); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.31/lib/Mojolicious/Command/get.pm new/Mojolicious-7.32/lib/Mojolicious/Command/get.pm --- old/Mojolicious-7.31/lib/Mojolicious/Command/get.pm 2017-02-24 16:07:20.000000000 +0100 +++ new/Mojolicious-7.32/lib/Mojolicious/Command/get.pm 2017-05-28 17:18:24.000000000 +0200 @@ -15,17 +15,23 @@ sub run { my ($self, @args) = @_; + # Data from STDIN + vec(my $r, fileno(STDIN), 1) = 1; + my $in = !-t STDIN && select($r, undef, undef, 0) ? join '', <STDIN> : undef; + my $ua = Mojo::UserAgent->new(ioloop => Mojo::IOLoop->singleton); + my %form; getopt \@args, - 'C|charset=s' => \my $charset, - 'c|content=s' => \(my $content = ''), - 'H|header=s' => \my @headers, + 'C|charset=s' => \my $charset, + 'c|content=s' => \$in, + 'f|form=s' => sub { _form(\%form) if $_[1] =~ /^(.+)=(\@?)(.+)$/ }, + 'H|header=s' => \my @headers, 'i|inactivity-timeout=i' => sub { $ua->inactivity_timeout($_[1]) }, - 'M|method=s' => \(my $method = 'GET'), - 'o|connect-timeout=i' => sub { $ua->connect_timeout($_[1]) }, - 'r|redirect' => \my $redirect, - 'S|response-size=i' => sub { $ua->max_response_size($_[1]) }, - 'v|verbose' => \my $verbose; + 'M|method=s' => \(my $method = 'GET'), + 'o|connect-timeout=i' => sub { $ua->connect_timeout($_[1]) }, + 'r|redirect' => \my $redirect, + 'S|response-size=i' => sub { $ua->max_response_size($_[1]) }, + 'v|verbose' => \my $verbose; @args = map { decode 'UTF-8', $_ } @args; die $self->usage unless my $url = shift @args; @@ -62,7 +68,8 @@ # Switch to verbose for HEAD requests $verbose = 1 if $method eq 'HEAD'; STDOUT->autoflush(1); - my $tx = $ua->start($ua->build_tx($method, $url, \%headers, $content)); + my @content = %form ? (form => \%form) : defined $in ? ($in) : (); + my $tx = $ua->start($ua->build_tx($method, $url, \%headers, @content)); my $res = $tx->result; # JSON Pointer @@ -74,6 +81,8 @@ _select($buffer, $selector, $charset, @args); } +sub _form { push @{$_[0]{$1}}, $2 ? {file => $3} : $3 } + sub _header { $_[0]->build_start_line, $_[0]->headers->to_string, "\n\n" } sub _json { @@ -133,7 +142,10 @@ mojo get mojolicious.org mojo get -v -r -o 25 -i 50 google.com mojo get -v -H 'Host: mojolicious.org' -H 'Accept: */*' mojolicious.org - mojo get -M POST -H 'Content-Type: text/trololo' -c 'trololo' perl.org + mojo get mojolicious.org > example.html + mojo get -M PUT mojolicious.org < example.html + mojo get -f 'q=Mojolicious' -f 'size=5' https://metacpan.org/search + mojo get -M POST -f '[email protected]' mojolicious.org mojo get mojolicious.org 'head > title' text mojo get mojolicious.org .footer all mojo get mojolicious.org a attr href @@ -146,7 +158,9 @@ -C, --charset <charset> Charset of HTML/XML content, defaults to auto-detection -c, --content <content> Content to send with request - -H, --header <name:value> Additional HTTP header + -f, --form <name=value> One or more form values and file + uploads + -H, --header <name:value> One or more additional HTTP headers -h, --help Show this summary of available options --home <path> Path to home directory of your application, defaults to the value of diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.31/lib/Mojolicious/Guides/Cookbook.pod new/Mojolicious-7.32/lib/Mojolicious/Guides/Cookbook.pod --- old/Mojolicious-7.31/lib/Mojolicious/Guides/Cookbook.pod 2017-03-05 23:07:49.000000000 +0100 +++ new/Mojolicious-7.32/lib/Mojolicious/Guides/Cookbook.pod 2017-05-28 14:08:53.000000000 +0200 @@ -1447,8 +1447,27 @@ The request can be customized as well. - $ mojo get -M POST -c 'Hello!' http://mojolicious.org - $ mojo get -H 'X-Bender: Bite my shiny metal ass!' http://google.com + $ mojo get -M POST -H 'X-Bender: Bite my shiny metal ass!' http://google.com + +Store response data by redirecting C<STDOUT>. + + $ mojo get mojolicious.org > example.html + +Pass request data by redirecting C<STDIN>. + + $ mojo get -M PUT mojolicious.org < example.html + +Or use the output of another program. + + $ echo 'Hello World' | mojo get -M PUT http://mojolicious.org + +Submit forms as C<application/x-www-form-urlencoded> content. + + $ mojo get -M POST -f 'q=Mojo' -f 'size=5' https://metacpan.org/search + +And upload files as C<multipart/form-data> content. + + $ mojo get -M POST -f '[email protected]' mojolicious.org You can follow redirects and view the headers for all messages. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.31/lib/Mojolicious/Guides/Rendering.pod new/Mojolicious-7.32/lib/Mojolicious/Guides/Rendering.pod --- old/Mojolicious-7.31/lib/Mojolicious/Guides/Rendering.pod 2017-03-05 23:05:31.000000000 +0100 +++ new/Mojolicious-7.32/lib/Mojolicious/Guides/Rendering.pod 2017-05-06 16:25:50.000000000 +0200 @@ -820,7 +820,7 @@ return $c->render unless $validation->has_data; # Validate parameters ("pass_again" depends on "pass") - $validation->required('user')->size(1, 20)->like(qr/^[e-t]+$/); + $validation->required('user')->size(1, 20)->like(qr/^[a-z0-9]+$/); $validation->required('pass_again')->equal_to('pass') if $validation->optional('pass')->size(7, 500)->is_valid; @@ -842,7 +842,7 @@ </head> <body> %= form_for index => begin - %= label_for user => 'Username (required, 1-20 characters, only e-t)' + %= label_for user => 'Username (required, 1-20 characters, a-z/0-9)' <br> %= text_field 'user', id => 'user' %= submit_button diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.31/lib/Mojolicious/Renderer.pm new/Mojolicious-7.32/lib/Mojolicious/Renderer.pm --- old/Mojolicious-7.31/lib/Mojolicious/Renderer.pm 2017-01-09 18:47:43.000000000 +0100 +++ new/Mojolicious-7.32/lib/Mojolicious/Renderer.pm 2017-05-18 23:18:48.000000000 +0200 @@ -17,8 +17,8 @@ has paths => sub { [] }; # Bundled templates -my $TEMPLATES = Mojo::Home->new(Mojo::Home->new->mojo_lib_dir) - ->child('Mojolicious', 'resources', 'templates'); +my $TEMPLATES = Mojo::Home->new->mojo_lib_dir->child('Mojolicious', 'resources', + 'templates'); sub DESTROY { Mojo::Util::_teardown($_) for @{shift->{namespaces}} } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.31/lib/Mojolicious.pm new/Mojolicious-7.32/lib/Mojolicious.pm --- old/Mojolicious-7.31/lib/Mojolicious.pm 2017-04-06 14:04:12.000000000 +0200 +++ new/Mojolicious-7.32/lib/Mojolicious.pm 2017-04-24 09:50:41.000000000 +0200 @@ -58,7 +58,7 @@ has validator => sub { Mojolicious::Validator->new }; our $CODENAME = 'Doughnut'; -our $VERSION = '7.31'; +our $VERSION = '7.32'; sub AUTOLOAD { my $self = shift; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.31/t/mojolicious/commands.t new/Mojolicious-7.32/t/mojolicious/commands.t --- old/Mojolicious-7.31/t/mojolicious/commands.t 2017-03-05 19:39:47.000000000 +0100 +++ new/Mojolicious-7.32/t/mojolicious/commands.t 2017-05-28 17:18:20.000000000 +0200 @@ -149,15 +149,17 @@ $get->run('/'); } like $buffer, qr/Your Mojo is working!/, 'right output'; +my $template + = '<p><%= param "just" %> <%= $c->req->headers->header("X-Test") %></p>'; $get->app->plugins->once( - before_dispatch => sub { shift->render(text => '<p>works</p>') }); + before_dispatch => sub { shift->render(inline => $template) }); $buffer = ''; { open my $handle, '>', \$buffer; local *STDOUT = $handle; - $get->run('/html', 'p', 'text'); + $get->run('-f', 'just=works', '-H', 'X-Test: fine', '/html', 'p', 'text'); } -like $buffer, qr/works/, 'right output'; +like $buffer, qr/works fine/, 'right output'; $get->app->plugins->once( before_dispatch => sub { shift->render(json => {works => 'too'}) }); $buffer = ''; @@ -252,7 +254,7 @@ ok -e $app->rel_file('my_app/lib/MyApp.pm'), 'application class exists'; ok -e $app->rel_file('my_app/lib/MyApp/Controller/Example.pm'), 'controller exists'; -ok -e $app->rel_file('my_app/my_app.conf'), 'config file exists'; +ok -e $app->rel_file('my_app/my_app.conf'), 'config file exists'; ok -e $app->rel_file('my_app/t/basic.t'), 'test exists'; ok -e $app->rel_file('my_app/public/index.html'), 'static file exists'; ok -e $app->rel_file('my_app/templates/layouts/default.html.ep'),
