Hello community, here is the log from the commit of package perl-Mojolicious for openSUSE:Factory checked in at 2017-08-29 11:35:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Mojolicious (Old) and /work/SRC/openSUSE:Factory/.perl-Mojolicious.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "perl-Mojolicious" Tue Aug 29 11:35:53 2017 rev:74 rq:517859 version:7.43 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Mojolicious/perl-Mojolicious.changes 2017-08-19 10:55:45.534029326 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Mojolicious.new/perl-Mojolicious.changes 2017-08-29 11:35:54.833283793 +0200 @@ -1,0 +2,9 @@ +Sat Aug 19 05:50:22 UTC 2017 - coolo@suse.com + +- updated to 7.43 + see /usr/share/doc/packages/perl-Mojolicious/Changes + + 7.43 2017-08-18 + - Improved Mojo::Base role support with the ability to rebless objects. + +------------------------------------------------------------------- Old: ---- Mojolicious-7.42.tar.gz New: ---- Mojolicious-7.43.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Mojolicious.spec ++++++ --- /var/tmp/diff_new_pack.xr62S8/_old 2017-08-29 11:35:55.921130946 +0200 +++ /var/tmp/diff_new_pack.xr62S8/_new 2017-08-29 11:35:55.949127013 +0200 @@ -17,7 +17,7 @@ Name: perl-Mojolicious -Version: 7.42 +Version: 7.43 Release: 0 %define cpan_name Mojolicious Summary: Real-time web framework ++++++ Mojolicious-7.42.tar.gz -> Mojolicious-7.43.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.42/Changes new/Mojolicious-7.43/Changes --- old/Mojolicious-7.42/Changes 2017-08-17 13:14:25.000000000 +0200 +++ new/Mojolicious-7.43/Changes 2017-08-17 22:25:27.000000000 +0200 @@ -1,4 +1,7 @@ +7.43 2017-08-18 + - Improved Mojo::Base role support with the ability to rebless objects. + 7.42 2017-08-17 - Improved Mojo::Base role support with shorthands. MyClass->with_roles('MyClass::Role::Foo') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.42/META.json new/Mojolicious-7.43/META.json --- old/Mojolicious-7.42/META.json 2017-08-17 13:15:13.000000000 +0200 +++ new/Mojolicious-7.43/META.json 2017-08-18 10:25:25.000000000 +0200 @@ -58,6 +58,6 @@ }, "x_IRC" : "irc://irc.perl.org/#mojo" }, - "version" : "7.42", + "version" : "7.43", "x_serialization_backend" : "JSON::PP version 2.94" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.42/META.yml new/Mojolicious-7.43/META.yml --- old/Mojolicious-7.42/META.yml 2017-08-17 13:15:13.000000000 +0200 +++ new/Mojolicious-7.43/META.yml 2017-08-18 10:25:24.000000000 +0200 @@ -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.42' +version: '7.43' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.42/lib/Mojo/Base.pm new/Mojolicious-7.43/lib/Mojo/Base.pm --- old/Mojolicious-7.42/lib/Mojo/Base.pm 2017-08-16 23:39:42.000000000 +0200 +++ new/Mojolicious-7.43/lib/Mojo/Base.pm 2017-08-18 09:51:50.000000000 +0200 @@ -6,7 +6,8 @@ use feature (); # No imports because we get subclassed, a lot! -use Carp (); +use Carp (); +use Scalar::Util (); # Only Perl 5.14+ requires it on demand use IO::Handle (); @@ -107,9 +108,14 @@ sub with_roles { Carp::croak 'Role::Tiny 2.000001+ is required for roles' unless ROLES; - my $class = shift; - return Role::Tiny->create_class_with_roles($class, - map { /^\+(.+)$/ ? "${class}::Role::$1" : $_ } @_); + my ($self, @roles) = @_; + + return Role::Tiny->create_class_with_roles($self, + map { /^\+(.+)$/ ? "${self}::Role::$1" : $_ } @roles) + unless my $class = Scalar::Util::blessed $self; + + return Role::Tiny->apply_roles_to_object($self, + map { /^\+(.+)$/ ? "${class}::Role::$1" : $_ } @roles); } 1; @@ -251,11 +257,13 @@ my $new_class = SubClass->with_roles('SubClass::Role::One'); my $new_class = SubClass->with_roles('+One', '+Two'); + $object = $object->with_roles('+One', '+Two'); -Create and return a new class that extends the given class with one or more -LRole::Tiny roles. For roles following the naming scheme -CMyClass::Role::RoleName you can use the shorthand C<+RoleName>. Note that -role support depends on LRole::Tiny (2.000001+). +Create a new class with one or more LRole::Tiny roles. If called on a class +returns the new class, or if called on an object reblesses the object into the +new class. For roles following the naming scheme CMyClass::Role::RoleName you +can use the shorthand C<+RoleName>. Note that role support depends on +LRole::Tiny (2.000001+). # Create a new class with the role "SubClass::Role::Foo" and instantiate it my $new_class = SubClass->with_roles('+Foo'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.42/lib/Mojo/ByteStream.pm new/Mojolicious-7.43/lib/Mojo/ByteStream.pm --- old/Mojolicious-7.42/lib/Mojo/ByteStream.pm 2017-08-16 23:41:01.000000000 +0200 +++ new/Mojolicious-7.43/lib/Mojo/ByteStream.pm 2017-08-17 21:29:53.000000000 +0200 @@ -334,6 +334,7 @@ my $new_class = Mojo::ByteStream->with_roles('Mojo::ByteStream::Role::One'); my $new_class = Mojo::ByteStream->with_roles('+One', '+Two'); + $stream = $stream->with_roles('+One', '+Two'); Alias for LMojo::Base/"with_roles". diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.42/lib/Mojo/Collection.pm new/Mojolicious-7.43/lib/Mojo/Collection.pm --- old/Mojolicious-7.42/lib/Mojo/Collection.pm 2017-08-16 23:40:47.000000000 +0200 +++ new/Mojolicious-7.43/lib/Mojo/Collection.pm 2017-08-17 21:30:21.000000000 +0200 @@ -373,6 +373,7 @@ my $new_class = Mojo::Collection->with_roles('Mojo::Collection::Role::One'); my $new_class = Mojo::Collection->with_roles('+One', '+Two'); + $collection = $collection->with_roles('+One', '+Two'); Alias for LMojo::Base/"with_roles". diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.42/lib/Mojo/DOM.pm new/Mojolicious-7.43/lib/Mojo/DOM.pm --- old/Mojolicious-7.42/lib/Mojo/DOM.pm 2017-08-16 23:41:23.000000000 +0200 +++ new/Mojolicious-7.43/lib/Mojo/DOM.pm 2017-08-17 21:30:36.000000000 +0200 @@ -952,6 +952,7 @@ my $new_class = Mojo::DOM->with_roles('Mojo::DOM::Role::One'); my $new_class = Mojo::DOM->with_roles('+One', '+Two'); + $dom = $dom->with_roles('+One', '+Two'); Alias for LMojo::Base/"with_roles". diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.42/lib/Mojo/File.pm new/Mojolicious-7.43/lib/Mojo/File.pm --- old/Mojolicious-7.42/lib/Mojo/File.pm 2017-08-16 23:41:49.000000000 +0200 +++ new/Mojolicious-7.43/lib/Mojo/File.pm 2017-08-17 21:30:50.000000000 +0200 @@ -452,6 +452,7 @@ my $new_class = Mojo::File->with_roles('Mojo::File::Role::One'); my $new_class = Mojo::File->with_roles('+One', '+Two'); + $path = $path->with_roles('+One', '+Two'); Alias for LMojo::Base/"with_roles". diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.42/lib/Mojolicious.pm new/Mojolicious-7.43/lib/Mojolicious.pm --- old/Mojolicious-7.42/lib/Mojolicious.pm 2017-08-16 10:19:34.000000000 +0200 +++ new/Mojolicious-7.43/lib/Mojolicious.pm 2017-08-17 13:15:48.000000000 +0200 @@ -58,7 +58,7 @@ has validator => sub { Mojolicious::Validator->new }; our $CODENAME = 'Doughnut'; -our $VERSION = '7.42'; +our $VERSION = '7.43'; sub AUTOLOAD { my $self = shift; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Mojolicious-7.42/t/mojo/roles.t new/Mojolicious-7.43/t/mojo/roles.t --- old/Mojolicious-7.42/t/mojo/roles.t 2017-08-16 23:42:31.000000000 +0200 +++ new/Mojolicious-7.43/t/mojo/roles.t 2017-08-17 21:25:52.000000000 +0200 @@ -86,6 +86,13 @@ is $obj6->whisper, 'psst, joel', 'method from first role'; is $obj6->hello, 'HEY! JOEL!!!', 'method from second role'; +# Multiple object roles (mixed) +my $obj7 = Mojo::RoleTest->new(name => 'Joel') + ->with_roles('Mojo::RoleTest::Role::quiet', '+LOUD'); +is $obj7->name, 'Joel', 'base attribute'; +is $obj7->whisper, 'psst, joel', 'method from first role'; +is $obj7->hello, 'HEY! JOEL!!!', 'method from second role'; + # Classes that are not subclasses of Mojo::Base my $stream = Mojo::ByteStream->with_roles('Mojo::RoleTest::Hello')->new; is $stream->hello, 'hello mojo!', 'right result';