Hello community, here is the log from the commit of package perl-Mojolicious for openSUSE:Factory checked in at 2017-03-13 15:28:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Mojolicious (Old) and /work/SRC/openSUSE:Factory/.perl-Mojolicious.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "perl-Mojolicious" Mon Mar 13 15:28:00 2017 rev:64 rq:477881 version:7.28 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Mojolicious/perl-Mojolicious.changes 2017-03-03 14:36:02.481663204 +0100 +++ /work/SRC/openSUSE:Factory/.perl-Mojolicious.new/perl-Mojolicious.changes 2017-03-13 15:28:02.472426173 +0100 @@ -1,0 +2,12 @@ +Wed Mar 8 07:08:26 UTC 2017 - coolo@suse.com + +- updated to 7.28 + see /usr/share/doc/packages/perl-Mojolicious/Changes + + 7.28 2017-03-07 + - Added copy_to, realpath and sibling methods to Mojo::File. + - Added dir option to list_tree method in Mojo::File. + - Improved app generator command to generate a config file. + (tudorconstantin) + +------------------------------------------------------------------- Old: ---- Mojolicious-7.27.tar.gz New: ---- Mojolicious-7.28.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Mojolicious.spec ++++++ --- /var/tmp/diff_new_pack.kCHs29/_old 2017-03-13 15:28:03.232318771 +0100 +++ /var/tmp/diff_new_pack.kCHs29/_new 2017-03-13 15:28:03.236318206 +0100 @@ -17,7 +17,7 @@ Name: perl-Mojolicious -Version: 7.27 +Version: 7.28 Release: 0 %define cpan_name Mojolicious Summary: Real-time web framework ++++++ Mojolicious-7.27.tar.gz -> Mojolicious-7.28.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.27/Changes new/Mojolicious-7.28/Changes --- old/Mojolicious-7.27/Changes 2017-02-27 12:53:24.000000000 +0100 +++ new/Mojolicious-7.28/Changes 2017-03-07 22:17:16.000000000 +0100 @@ -1,4 +1,10 @@ +7.28 2017-03-07 + - Added copy_to, realpath and sibling methods to Mojo::File. + - Added dir option to list_tree method in Mojo::File. + - Improved app generator command to generate a config file. + (tudorconstantin) + 7.27 2017-02-27 - Added support for UNIX domain sockets. (sri, salva) - Improved Mojo::UserAgent to complain about unsupported protocols. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.27/META.json new/Mojolicious-7.28/META.json --- old/Mojolicious-7.27/META.json 2017-02-27 18:01:40.000000000 +0100 +++ new/Mojolicious-7.28/META.json 2017-03-07 22:35:59.000000000 +0100 @@ -58,6 +58,6 @@ }, "x_IRC" : "irc://irc.perl.org/#mojo" }, - "version" : "7.27", + "version" : "7.28", "x_serialization_backend" : "JSON::PP version 2.27400" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.27/META.yml new/Mojolicious-7.28/META.yml --- old/Mojolicious-7.27/META.yml 2017-02-27 18:01:40.000000000 +0100 +++ new/Mojolicious-7.28/META.yml 2017-03-07 22:35:59.000000000 +0100 @@ -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.27' +version: '7.28' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.27/lib/Mojo/File.pm new/Mojolicious-7.28/lib/Mojo/File.pm --- old/Mojolicious-7.27/lib/Mojo/File.pm 2017-02-06 00:47:22.000000000 +0100 +++ new/Mojolicious-7.28/lib/Mojo/File.pm 2017-03-07 22:17:16.000000000 +0100 @@ -10,9 +10,9 @@ use Cwd 'getcwd'; use Exporter 'import'; use File::Basename (); -use File::Copy (); -use File::Find (); -use File::Path (); +use File::Copy qw(copy move); +use File::Find 'find'; +use File::Path (); use File::Spec::Functions qw(abs2rel canonpath catfile file_name_is_absolute rel2abs splitdir); use File::Temp (); @@ -21,10 +21,16 @@ our @EXPORT_OK = ('path', 'tempdir', 'tempfile'); -sub basename { scalar File::Basename::basename ${$_[0]}, @_ } +sub basename { File::Basename::basename ${$_[0]}, @_ } sub child { $_[0]->new(@_) } +sub copy_to { + my ($self, $to) = @_; + copy($$self, $to) or croak qq{Can't copy file "$$self" to "$to": $!}; + return $self->new(-d $to ? ($to, File::Basename::basename $self) : $to); +} + sub dirname { $_[0]->new(scalar File::Basename::dirname ${$_[0]}) } sub is_abs { file_name_is_absolute ${shift()} } @@ -48,14 +54,14 @@ # This may break in the future, but is worth it for performance local $File::Find::skip_pattern = qr/^./ unless $options->{hidden}; - my %files; - my $w = sub { $files{$File::Find::name}++ }; - my $p = sub { delete $files{$File::Find::dir} }; - File::Find::find {wanted => $w, postprocess => $p, no_chdir => 1}, $$self - if -d $$self; + my %all; + my $wanted = {wanted => sub { $all{$File::Find::name}++ }, no_chdir => 1}; + $wanted->{postprocess} = sub { delete $all{$File::Find::dir} } + unless $options->{dir}; + find $wanted, $$self if -d $$self; + delete $all{$$self}; - return Mojo::Collection->new(map { $self->new(canonpath($_)) } - sort keys %files); + return Mojo::Collection->new(map { $self->new(canonpath $_) } sort keys %all); } sub make_path { @@ -66,9 +72,8 @@ sub move_to { my ($self, $to) = @_; - File::Copy::move($$self, $to) - or croak qq{Can't move file "$$self" to "$to": $!}; - return $self; + move($$self, $to) or croak qq{Can't move file "$$self" to "$to": $!}; + return $self->new(-d $to ? ($to, File::Basename::basename $self) : $to); } sub new { @@ -86,12 +91,19 @@ sub path { __PACKAGE__->new(@_) } +sub realpath { $_[0]->new(Cwd::realpath ${$_[0]}) } + sub remove_tree { my $self = shift; File::Path::remove_tree $$self, @_; return $self; } +sub sibling { + my $self = shift; + return $self->new(scalar File::Basename::dirname($self), @_); +} + sub slurp { my $self = shift; @@ -140,8 +152,9 @@ # Portably deal with file system paths my $path = Mojo::File->new('/home/sri/.vimrc'); say $path->slurp; + say $path->dirname; say $path->basename; - say $path->dirname->child('.bashrc'); + say $path->sibling('.bashrc'); # Use the alternative constructor use Mojo::File 'path'; @@ -223,6 +236,14 @@ # "/home/sri/.vimrc" (on UNIX) path('/home')->child('sri', '.vimrc'); +=head2 copy_to + + my $destination = $path->copy_to('/home/sri'); + my $destination = $path->copy_to('/home/sri/.vimrc.backup'); + +Copy file with LFile::Copy and return the destination as a LMojo::File +object. + =head2 dirname my $name = $path->dirname; @@ -291,6 +312,12 @@ =over 2 +=item dir + + dir => 1 + +Include directories. + =item hidden hidden => 1 @@ -309,9 +336,11 @@ =head2 move_to - $path = $path->move_to('/home/sri/.vimrc.backup'); + my $destination = $path->move_to('/home/sri'); + my $destination = $path->move_to('/home/sri/.vimrc.backup'); -Move the file with LFile::Copy. +Move file with LFile::Copy and return the destination as a LMojo::File +object. =head2 new @@ -340,6 +369,12 @@ use Fcntl qw(O_CREAT O_EXCL O_RDWR); my $handle = path('/home/sri/test.pl')->open(O_RDWR | O_CREAT | O_EXCL); +=head2 realpath + + my $realpath = $path->realpath; + +Resolve the path with L<Cwd> and return the result as a LMojo::File object. + =head2 remove_tree $path = $path->remove_tree; @@ -348,6 +383,18 @@ Delete this directory and any files and subdirectories it may contain, any additional arguments are passed through to LFile::Path. +=head2 sibling + + my $sibling = $path->sibling('.vimrc'); + +Return a new LMojo::File object relative to the directory part of the path. + + # "/home/sri/.vimrc" (on UNIX) + path('/home/sri/.bashrc')->sibling('.vimrc'); + + # "/home/sri/.ssh/known_hosts" (on UNIX) + path('/home/sri/.bashrc')->sibling('.ssh', 'known_hosts'); + =head2 slurp my $bytes = $path->slurp; @@ -371,7 +418,8 @@ my $absolute = $path->to_abs; -Return the canonical path as a LMojo::File object. +Return absolute path as a LMojo::File object, the path does not need to exist +on the file system. =head2 to_array diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.27/lib/Mojo/Home.pm new/Mojolicious-7.28/lib/Mojo/Home.pm --- old/Mojolicious-7.27/lib/Mojo/Home.pm 2017-02-22 10:42:34.000000000 +0100 +++ new/Mojolicious-7.28/lib/Mojo/Home.pm 2017-03-05 23:05:41.000000000 +0100 @@ -38,7 +38,7 @@ ->to_array; } -sub mojo_lib_dir { shift->new(__FILE__)->dirname->child('..') } +sub mojo_lib_dir { shift->new(__FILE__)->sibling('..') } # DEPRECATED! sub parse { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.27/lib/Mojo/IOLoop/TLS.pm new/Mojolicious-7.28/lib/Mojo/IOLoop/TLS.pm --- old/Mojolicious-7.27/lib/Mojo/IOLoop/TLS.pm 2017-02-15 18:20:16.000000000 +0100 +++ new/Mojolicious-7.28/lib/Mojo/IOLoop/TLS.pm 2017-03-05 23:05:14.000000000 +0100 @@ -16,8 +16,8 @@ # To regenerate the certificate run this command (18.04.2012) # openssl req -new -x509 -keyout server.key -out server.crt -nodes -days 7300 -my $CERT = path(__FILE__)->dirname->child('resources', 'server.crt')->to_string; -my $KEY = path(__FILE__)->dirname->child('resources', 'server.key')->to_string; +my $CERT = path(__FILE__)->sibling('resources', 'server.crt')->to_string; +my $KEY = path(__FILE__)->sibling('resources', 'server.key')->to_string; sub DESTROY { shift->_cleanup } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.27/lib/Mojo/Loader.pm new/Mojolicious-7.28/lib/Mojo/Loader.pm --- old/Mojolicious-7.27/lib/Mojo/Loader.pm 2017-01-09 18:47:43.000000000 +0100 +++ new/Mojolicious-7.28/lib/Mojo/Loader.pm 2017-03-04 19:33:34.000000000 +0100 @@ -171,9 +171,9 @@ my $e = load_class 'Foo::Bar'; Load a class and catch exceptions, returns a false value if loading was -successful, a true value if the class has already been loaded, or a -LMojo::Exception object if loading failed. Note that classes are checked for a -C<new> method to see if they are already loaded. +successful, a true value if the class was not found, or a LMojo::Exception +object if loading failed. Note that classes are checked for a C<new> method to +see if they are already loaded. # Handle exceptions if (my $e = load_class 'Foo::Bar') { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.27/lib/Mojo/Server/Hypnotoad.pm new/Mojolicious-7.28/lib/Mojo/Server/Hypnotoad.pm --- old/Mojolicious-7.27/lib/Mojo/Server/Hypnotoad.pm 2017-02-22 14:59:01.000000000 +0100 +++ new/Mojolicious-7.28/lib/Mojo/Server/Hypnotoad.pm 2017-03-05 23:04:56.000000000 +0100 @@ -49,7 +49,7 @@ # Preload application and configure server my $prefork = $self->prefork->cleanup(0); $prefork->load_app($app)->config->{hypnotoad}{pid_file} - //= path($ENV{HYPNOTOAD_APP})->dirname->child('hypnotoad.pid')->to_string; + //= path($ENV{HYPNOTOAD_APP})->sibling('hypnotoad.pid')->to_string; $self->configure('hypnotoad'); weaken $self; $prefork->on(wait => sub { $self->_manage }); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.27/lib/Mojolicious/Command/generate/app.pm new/Mojolicious-7.28/lib/Mojolicious/Command/generate/app.pm --- old/Mojolicious-7.27/lib/Mojolicious/Command/generate/app.pm 2017-01-19 11:06:12.000000000 +0100 +++ new/Mojolicious-7.28/lib/Mojolicious/Command/generate/app.pm 2017-03-05 20:01:27.000000000 +0100 @@ -25,6 +25,9 @@ my $app = class_to_path $class; $self->render_to_rel_file('appclass', "$name/lib/$app", $class); + # Config file + $self->render_to_rel_file('config', "$name/$name.conf"); + # Controller my $controller = "${class}::Controller::Example"; my $path = class_to_path $controller; @@ -133,8 +136,11 @@ sub startup { my $self = shift; + # Load configuration from hash returned by "my_app.conf" + my $config = $self->plugin('Config'); + # Documentation browser under "/perldoc" - $self->plugin('PODRenderer'); + $self->plugin('PODRenderer') if $config->{perldoc}; # Router my $r = $self->routes; @@ -196,9 +202,20 @@ %% layout 'default'; %% title 'Welcome'; <h2><%%= $msg %></h2> -This page was generated from the template "templates/example/welcome.html.ep" -and the layout "templates/layouts/default.html.ep", -<%%= link_to 'click here' => url_for %> to reload the page or -<%%= link_to 'here' => '/index.html' %> to move forward to a static page. To -learn more, you can also browse through the documentation -<%%= link_to 'here' => '/perldoc' %>. +<p> + This page was generated from the template "templates/example/welcome.html.ep" + and the layout "templates/layouts/default.html.ep", + <%%= link_to 'click here' => url_for %> to reload the page or + <%%= link_to 'here' => '/index.html' %> to move forward to a static page. + %% if (config 'perldoc') { + To learn more, you can also browse through the documentation + <%%= link_to 'here' => '/perldoc' %>. + %% } +</p> + +@@ config +% use Mojo::Util qw(sha1_sum steady_time); +{ + perldoc => 1, + secrets => ['<%= sha1_sum $$ . steady_time . rand %>'] +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.27/lib/Mojolicious/Guides/Cookbook.pod new/Mojolicious-7.28/lib/Mojolicious/Guides/Cookbook.pod --- old/Mojolicious-7.27/lib/Mojolicious/Guides/Cookbook.pod 2017-02-24 16:06:34.000000000 +0100 +++ new/Mojolicious-7.28/lib/Mojolicious/Guides/Cookbook.pod 2017-03-05 23:07:49.000000000 +0100 @@ -1686,7 +1686,7 @@ my $self = shift; # Switch to installable home directory - $self->home(Mojo::Home->new(path(__FILE__)->dirname->child('MyApp'))); + $self->home(Mojo::Home->new(path(__FILE__)->sibling('MyApp'))); # Switch to installable "public" directory $self->static->paths->[0] = $self->home->child('public'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.27/lib/Mojolicious/Guides/Rendering.pod new/Mojolicious-7.28/lib/Mojolicious/Guides/Rendering.pod --- old/Mojolicious-7.27/lib/Mojolicious/Guides/Rendering.pod 2017-02-04 12:38:21.000000000 +0100 +++ new/Mojolicious-7.28/lib/Mojolicious/Guides/Rendering.pod 2017-03-05 23:05:31.000000000 +0100 @@ -1159,7 +1159,7 @@ my ($self, $app) = @_; # Append "templates" and "public" directories - my $base = path(__FILE__)->dirname->child('AlertAssets'); + my $base = path(__FILE__)->sibling('AlertAssets'); push @{$app->renderer->paths}, $base->child('templates')->to_string; push @{$app->static->paths}, $base->child('public')->to_string; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.27/lib/Mojolicious.pm new/Mojolicious-7.28/lib/Mojolicious.pm --- old/Mojolicious-7.27/lib/Mojolicious.pm 2017-02-22 17:28:45.000000000 +0100 +++ new/Mojolicious-7.28/lib/Mojolicious.pm 2017-03-05 22:38:27.000000000 +0100 @@ -58,7 +58,7 @@ has validator => sub { Mojolicious::Validator->new }; our $CODENAME = 'Doughnut'; -our $VERSION = '7.27'; +our $VERSION = '7.28'; sub AUTOLOAD { my $self = shift; @@ -1074,6 +1074,8 @@ Tomas Znamenacek +Tudor Constantin + Ulrich Habel Ulrich Kautz diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.27/t/mojo/file.t new/Mojolicious-7.28/t/mojo/file.t --- old/Mojolicious-7.27/t/mojo/file.t 2017-02-24 11:37:37.000000000 +0100 +++ new/Mojolicious-7.28/t/mojo/file.t 2017-03-07 22:17:16.000000000 +0100 @@ -1,7 +1,7 @@ use Mojo::Base -strict; use Test::More; -use Cwd 'getcwd'; +use Cwd qw(getcwd realpath); use Fcntl 'O_RDONLY'; use File::Basename qw(basename dirname); use File::Spec::Functions qw(abs2rel canonpath catfile rel2abs splitdir); @@ -24,6 +24,10 @@ is path('foo', 'bar')->child('baz', 'yada'), catfile(catfile('foo', 'bar'), 'baz', 'yada'), 'same path'; +# Siblings +is path('foo', 'bar')->sibling('baz', 'yada'), + catfile(scalar dirname(catfile('foo', 'bar')), 'baz', 'yada'), 'same path'; + # Array is_deeply path('foo', 'bar')->to_array, [splitdir catfile('foo', 'bar')], 'same structure'; @@ -37,13 +41,17 @@ is path('test.txt')->to_abs->to_rel(getcwd), abs2rel(rel2abs('test.txt'), getcwd), 'same path'; +# Resolved +is path('.')->realpath, realpath('.'), 'same path'; + # Basename is path('file.t')->to_abs->basename, basename(rel2abs 'file.t'), 'same path'; is path('file.t')->to_abs->basename('.t'), basename(rel2abs('file.t'), '.t'), 'same path'; # Dirname -is path('file.t')->to_abs->dirname, dirname(rel2abs 'file.t'), 'same path'; +is path('file.t')->to_abs->dirname, scalar dirname(rel2abs 'file.t'), + 'same path'; # Checks ok path(__FILE__)->to_abs->is_abs, 'path is absolute'; @@ -116,14 +124,40 @@ my $source = $dir->child('src.txt')->spurt('works!'); ok -f $source, 'file exists'; ok !-f $destination, 'file does not exists'; -ok !-f $source->move_to($destination), 'file no longer exists'; +is $source->move_to($destination)->to_string, $destination, 'same path'; +ok !-f $source, 'file no longer exists'; ok -f $destination, 'file exists'; is $destination->slurp, 'works!', 'right content'; +$subdir = $dir->child('test')->make_path; +my $destination2 = $destination->move_to($subdir); +is $destination2, $subdir->child($destination->basename), 'same path'; +ok !-f $destination, 'file no longer exists'; +ok -f $destination2, 'file exists'; +is $destination2->slurp, 'works!', 'right content'; + +# Copy to +$dir = tempdir; +$destination = $dir->child('dest.txt'); +$source = $dir->child('src.txt')->spurt('works!'); +ok -f $source, 'file exists'; +ok !-f $destination, 'file does not exists'; +is $source->copy_to($destination)->to_string, $destination, 'same path'; +ok -f $source, 'file still exists'; +ok -f $destination, 'file also exists now'; +is $source->slurp, 'works!', 'right content'; +is $destination->slurp, 'works!', 'right content'; +$subdir = $dir->child('test')->make_path; +$destination2 = $destination->copy_to($subdir); +is $destination2, $subdir->child($destination->basename), 'same path'; +ok -f $destination, 'file still exists'; +ok -f $destination2, 'file also exists now'; +is $destination->slurp, 'works!', 'right content'; +is $destination2->slurp, 'works!', 'right content'; # List is_deeply path('does_not_exist')->list->to_array, [], 'no files'; is_deeply path(__FILE__)->list->to_array, [], 'no files'; -my $lib = path(__FILE__)->dirname->child('lib', 'Mojo'); +my $lib = path(__FILE__)->sibling('lib', 'Mojo'); my @files = map { path($lib)->child(split '/') } ( 'DeprecationTest.pm', 'LoaderException.pm', 'LoaderException2.pm', 'TestConnectProxy.pm' @@ -159,6 +193,18 @@ '.test/hidden.txt'; is_deeply path($lib)->list_tree({hidden => 1})->map('to_string')->to_array, [@hidden, @files], 'right files'; +my @all = map { path($lib)->child(split '/') } ( + '.hidden.txt', '.test', + '.test/hidden.txt', 'BaseTest', + 'BaseTest/Base1.pm', 'BaseTest/Base2.pm', + 'BaseTest/Base3.pm', 'DeprecationTest.pm', + 'LoaderException.pm', 'LoaderException2.pm', + 'LoaderTest', 'LoaderTest/A.pm', + 'LoaderTest/B.pm', 'LoaderTest/C.pm', + 'TestConnectProxy.pm' +); +is_deeply path($lib)->list_tree({dir => 1, hidden => 1})->map('to_string') + ->to_array, [@all], 'right files'; # I/O $dir = tempdir; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.27/t/mojo/prefork.t new/Mojolicious-7.28/t/mojo/prefork.t --- old/Mojolicious-7.27/t/mojo/prefork.t 2017-01-09 18:47:43.000000000 +0100 +++ new/Mojolicious-7.28/t/mojo/prefork.t 2017-03-05 23:08:00.000000000 +0100 @@ -29,7 +29,7 @@ ok !-e $file, 'file has been cleaned up'; # Bad PID file -my $bad = path(__FILE__)->dirname->child('does_not_exist', 'test.pid'); +my $bad = path(__FILE__)->sibling('does_not_exist', 'test.pid'); $prefork = Mojo::Server::Prefork->new(pid_file => $bad); $prefork->app->log->level('fatal'); my $log = ''; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.27/t/mojo/template.t new/Mojolicious-7.28/t/mojo/template.t --- old/Mojolicious-7.27/t/mojo/template.t 2017-01-20 21:31:57.000000000 +0100 +++ new/Mojolicious-7.28/t/mojo/template.t 2017-03-05 23:08:22.000000000 +0100 @@ -1125,13 +1125,13 @@ # File $mt = Mojo::Template->new; -my $file = path(__FILE__)->dirname->child('templates', 'test.mt'); +my $file = path(__FILE__)->sibling('templates', 'test.mt'); $output = $mt->render_file($file, 3); like $output, qr/23\nHello World!/, 'file'; # Exception in file $mt = Mojo::Template->new; -$file = path(__FILE__)->dirname->child('templates', 'exception.mt'); +$file = path(__FILE__)->sibling('templates', 'exception.mt'); $output = $mt->render_file($file); isa_ok $output, 'Mojo::Exception', 'right exception'; like $output->message, qr/exception.mt line 2/, 'message contains filename'; @@ -1161,7 +1161,7 @@ # Exception with UTF-8 context $mt = Mojo::Template->new; -$file = path(__FILE__)->dirname->child('templates', 'utf8_exception.mt'); +$file = path(__FILE__)->sibling('templates', 'utf8_exception.mt'); $output = $mt->render_file($file); isa_ok $output, 'Mojo::Exception', 'right exception'; ok $output->verbose, 'verbose exception'; @@ -1182,7 +1182,7 @@ # Different encodings $mt = Mojo::Template->new(encoding => 'shift_jis'); -$file = path(__FILE__)->dirname->child('templates', 'utf8_exception.mt'); +$file = path(__FILE__)->sibling('templates', 'utf8_exception.mt'); ok !eval { $mt->render_file($file) }, 'file not rendered'; like $@, qr/invalid encoding/, 'right error'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.27/t/mojolicious/commands.t new/Mojolicious-7.28/t/mojolicious/commands.t --- old/Mojolicious-7.27/t/mojolicious/commands.t 2017-02-05 01:29:00.000000000 +0100 +++ new/Mojolicious-7.28/t/mojolicious/commands.t 2017-03-05 19:39:47.000000000 +0100 @@ -252,6 +252,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/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'), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.27/t/mojolicious/json_config_lite_app.t new/Mojolicious-7.28/t/mojolicious/json_config_lite_app.t --- old/Mojolicious-7.27/t/mojolicious/json_config_lite_app.t 2017-01-09 18:47:43.000000000 +0100 +++ new/Mojolicious-7.28/t/mojolicious/json_config_lite_app.t 2017-03-05 23:08:31.000000000 +0100 @@ -21,8 +21,7 @@ # Load plugins my $config = plugin j_s_o_n_config => {default => {foo => 'baz', hello => 'there'}}; -my $path - = path(__FILE__)->to_abs->dirname->child('json_config_lite_app_abs.json'); +my $path = path(__FILE__)->to_abs->sibling('json_config_lite_app_abs.json'); plugin JSONConfig => {file => $path}; is $config->{foo}, 'bar', 'right value'; is $config->{hello}, 'there', 'right value';