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 - [email protected]
+
+- 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
-L<Role::Tiny> roles. For roles following the naming scheme
-C<MyClass::Role::RoleName> you can use the shorthand C<+RoleName>. Note that
-role support depends on L<Role::Tiny> (2.000001+).
+Create a new class with one or more L<Role::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 C<MyClass::Role::RoleName> you
+can use the shorthand C<+RoleName>. Note that role support depends on
+L<Role::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 L<Mojo::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 L<Mojo::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 L<Mojo::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 L<Mojo::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';


Reply via email to