Hello community,

here is the log from the commit of package perl-Mojolicious for 
openSUSE:Factory checked in at 2017-07-28 09:39:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Mojolicious (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Mojolicious.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Mojolicious"

Fri Jul 28 09:39:56 2017 rev:71 rq:512443 version:7.37

Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Mojolicious/perl-Mojolicious.changes        
2017-07-17 09:01:57.405689460 +0200
+++ /work/SRC/openSUSE:Factory/.perl-Mojolicious.new/perl-Mojolicious.changes   
2017-07-28 09:40:00.748744970 +0200
@@ -1,0 +2,12 @@
+Tue Jul 25 05:52:00 UTC 2017 - [email protected]
+
+- updated to 7.37
+   see /usr/share/doc/packages/perl-Mojolicious/Changes
+
+  7.37  2017-07-21
+    - Added slugify method to Mojo::ByteStream. (Grinnz)
+    - Added slugify function to Mojo::Util. (Grinnz)
+    - Fixed bugs in Mojo::IOLoop and Mojo::Reactor::Poll that would prevent a
+      reset from clearing events.
+
+-------------------------------------------------------------------

Old:
----
  Mojolicious-7.36.tar.gz

New:
----
  Mojolicious-7.37.tar.gz

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

Other differences:
------------------
++++++ perl-Mojolicious.spec ++++++
--- /var/tmp/diff_new_pack.Vzq1Z2/_old  2017-07-28 09:40:02.548491507 +0200
+++ /var/tmp/diff_new_pack.Vzq1Z2/_new  2017-07-28 09:40:02.548491507 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           perl-Mojolicious
-Version:        7.36
+Version:        7.37
 Release:        0
 %define cpan_name Mojolicious
 Summary:        Real-time web framework

++++++ Mojolicious-7.36.tar.gz -> Mojolicious-7.37.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.36/Changes new/Mojolicious-7.37/Changes
--- old/Mojolicious-7.36/Changes        2017-07-09 19:05:11.000000000 +0200
+++ new/Mojolicious-7.37/Changes        2017-07-21 10:00:45.000000000 +0200
@@ -1,4 +1,10 @@
 
+7.37  2017-07-21
+  - Added slugify method to Mojo::ByteStream. (Grinnz)
+  - Added slugify function to Mojo::Util. (Grinnz)
+  - Fixed bugs in Mojo::IOLoop and Mojo::Reactor::Poll that would prevent a
+    reset from clearing events.
+
 7.36  2017-07-09
   - Fixed basename method in Mojo::File to work with relative paths. (jberger)
   - Fixed a bug where Mojo::Log could not correctly identify if it was deployed
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.36/MANIFEST 
new/Mojolicious-7.37/MANIFEST
--- old/Mojolicious-7.36/MANIFEST       2017-07-10 09:47:25.000000000 +0200
+++ new/Mojolicious-7.37/MANIFEST       2017-07-24 09:54:46.000000000 +0200
@@ -7,6 +7,7 @@
 examples/hello-template.pl
 examples/hello.pl
 examples/microhttpd.pl
+lib/.DS_Store
 lib/Mojo.pm
 lib/Mojo/Asset.pm
 lib/Mojo/Asset/File.pm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.36/META.json 
new/Mojolicious-7.37/META.json
--- old/Mojolicious-7.36/META.json      2017-07-10 09:47:25.000000000 +0200
+++ new/Mojolicious-7.37/META.json      2017-07-24 09:54:46.000000000 +0200
@@ -58,6 +58,6 @@
       },
       "x_IRC" : "irc://irc.perl.org/#mojo"
    },
-   "version" : "7.36",
+   "version" : "7.37",
    "x_serialization_backend" : "JSON::PP version 2.94"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.36/META.yml 
new/Mojolicious-7.37/META.yml
--- old/Mojolicious-7.36/META.yml       2017-07-10 09:47:24.000000000 +0200
+++ new/Mojolicious-7.37/META.yml       2017-07-24 09:54:46.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.36'
+version: '7.37'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
Binary files old/Mojolicious-7.36/lib/.DS_Store and 
new/Mojolicious-7.37/lib/.DS_Store differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.36/lib/Mojo/ByteStream.pm 
new/Mojolicious-7.37/lib/Mojo/ByteStream.pm
--- old/Mojolicious-7.36/lib/Mojo/ByteStream.pm 2017-06-24 15:01:30.000000000 
+0200
+++ new/Mojolicious-7.37/lib/Mojo/ByteStream.pm 2017-07-21 09:56:39.000000000 
+0200
@@ -12,8 +12,8 @@
 my @UTILS = (
   qw(b64_decode b64_encode camelize decamelize hmac_sha1_sum html_unescape),
   qw(md5_bytes md5_sum punycode_decode punycode_encode quote sha1_bytes),
-  qw(sha1_sum term_escape trim unindent unquote url_escape url_unescape),
-  qw(xml_escape xor_encode)
+  qw(sha1_sum slugify term_escape trim unindent unquote url_escape),
+  qw(url_unescape xml_escape xor_encode)
 );
 for my $name (@UTILS) {
   my $sub = Mojo::Util->can($name);
@@ -250,6 +250,13 @@
 
 Size of bytestream.
 
+=head2 slugify
+
+  $stream = $stream->slugify;
+  $stream = $stream->slugify($bool);
+
+Generate URL slug for bytestream with L<Mojo::Util/"slugify">.
+
 =head2 split
 
   my $collection = $stream->split(',');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.36/lib/Mojo/IOLoop.pm 
new/Mojolicious-7.37/lib/Mojo/IOLoop.pm
--- old/Mojolicious-7.36/lib/Mojo/IOLoop.pm     2017-07-05 19:10:27.000000000 
+0200
+++ new/Mojolicious-7.37/lib/Mojo/IOLoop.pm     2017-07-19 18:11:52.000000000 
+0200
@@ -98,7 +98,7 @@
 
 sub reset {
   my $self = _instance(shift);
-  delete @$self{qw(accepting acceptors in out stop)};
+  delete @$self{qw(accepting acceptors events in out stop)};
   $self->reactor->reset;
   $self->stop;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.36/lib/Mojo/Reactor/Poll.pm 
new/Mojolicious-7.37/lib/Mojo/Reactor/Poll.pm
--- old/Mojolicious-7.36/lib/Mojo/Reactor/Poll.pm       2017-06-24 
15:01:30.000000000 +0200
+++ new/Mojolicious-7.37/lib/Mojo/Reactor/Poll.pm       2017-07-19 
18:32:05.000000000 +0200
@@ -91,11 +91,11 @@
   return !!delete $self->{io}{fileno $remove};
 }
 
-sub reset { delete @{shift()}{qw(io next_tick next_timer timers)} }
+sub reset { delete @{shift()}{qw(events io next_tick next_timer timers)} }
 
 sub start {
   my $self = shift;
-  $self->{running}++;
+  local $self->{running} = ($self->{running} || 0) + 1;
   $self->one_tick while $self->{running};
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.36/lib/Mojo/Util.pm 
new/Mojolicious-7.37/lib/Mojo/Util.pm
--- old/Mojolicious-7.36/lib/Mojo/Util.pm       2017-06-24 15:01:30.000000000 
+0200
+++ new/Mojolicious-7.37/lib/Mojo/Util.pm       2017-07-21 09:58:28.000000000 
+0200
@@ -13,7 +13,8 @@
 use MIME::Base64 qw(decode_base64 encode_base64);
 use Pod::Usage 'pod2usage';
 use Symbol 'delete_package';
-use Time::HiRes ();
+use Time::HiRes        ();
+use Unicode::Normalize ();
 
 # Check for monotonic clock support
 use constant MONOTONIC =>
@@ -62,8 +63,8 @@
   qw(decode deprecated dumper encode extract_usage getopt hmac_sha1_sum),
   qw(html_attr_unescape html_unescape md5_bytes md5_sum monkey_patch),
   qw(punycode_decode punycode_encode quote secure_compare sha1_bytes sha1_sum),
-  qw(split_cookie_header split_header steady_time tablify term_escape trim),
-  qw(unindent unquote url_escape url_unescape xml_escape xor_encode)
+  qw(slugify split_cookie_header split_header steady_time tablify term_escape),
+  qw(trim unindent unquote url_escape url_unescape xml_escape xor_encode)
 );
 
 # Aliases
@@ -248,6 +249,24 @@
   return $r == 0;
 }
 
+sub slugify {
+  my ($value, $allow_unicode) = @_;
+
+  if ($allow_unicode) {
+
+    # Force unicode semantics by upgrading string
+    utf8::upgrade($value = Unicode::Normalize::NFKC($value));
+    $value =~ s/[^\w\s-]+//g;
+  }
+  else {
+    $value = Unicode::Normalize::NFKD($value);
+    $value =~ s/[^a-zA-Z0-9_\p{PosixSpace}-]+//g;
+  }
+  (my $new = lc trim($value)) =~ s/[-\s]+/-/g;
+
+  return $new;
+}
+
 sub split_cookie_header { _header(shift, 1) }
 sub split_header        { _header(shift, 0) }
 
@@ -709,6 +728,27 @@
   # "0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33"
   sha1_sum 'foo';
 
+=head2 slugify
+
+  my $slug = slugify $string;
+  my $slug = slugify $string, $bool;
+
+Returns a URL slug generated from the input string. Non-word characters are
+removed, the string is trimmed and lowercased, and whitespace characters are
+replaced by a dash. By default, non-ASCII characters are normalized to ASCII
+word characters or removed, but if a true value is passed as the second
+parameter, all word characters will be allowed in the result according to
+unicode semantics.
+
+  # "joel-is-a-slug"
+  slugify 'Joel is a slug';
+
+  # "this-is-my-resume"
+  slugify 'This is: my - résumé! ☃ ';
+
+  # "this-is-my-résumé"
+  slugify 'This is: my - résumé! ☃ ', 1;
+
 =head2 split_cookie_header
 
   my $tree = split_cookie_header 'a=b; expires=Thu, 07 Aug 2008 07:07:59 GMT';
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Mojolicious-7.36/lib/Mojolicious/Guides/Contributing.pod 
new/Mojolicious-7.37/lib/Mojolicious/Guides/Contributing.pod
--- old/Mojolicious-7.36/lib/Mojolicious/Guides/Contributing.pod        
2017-06-24 15:01:30.000000000 +0200
+++ new/Mojolicious-7.37/lib/Mojolicious/Guides/Contributing.pod        
2017-07-18 18:47:28.000000000 +0200
@@ -284,8 +284,6 @@
 
 =back
 
-Original text courtesy of the L<Speak Up! project|http://speakup.io/coc.html>.
-
 =head1 FORK POLICY
 
 The L<Mojolicious> core team believes that there is a lot of value in the 
entire
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.36/lib/Mojolicious/Guides/FAQ.pod 
new/Mojolicious-7.37/lib/Mojolicious/Guides/FAQ.pod
--- old/Mojolicious-7.36/lib/Mojolicious/Guides/FAQ.pod 2017-07-04 
17:22:00.000000000 +0200
+++ new/Mojolicious-7.37/lib/Mojolicious/Guides/FAQ.pod 2017-07-21 
18:10:18.000000000 +0200
@@ -203,6 +203,15 @@
 response or that the user agent got destroyed, which forces all connections to
 be closed immediately.
 
+  # The variable $ua goes out of scope and gets destroyed too early
+  Mojo::IOLoop->timer(5 => sub {
+    my $ua = Mojo::UserAgent->new;
+    $ua->get('http://mojolicious.org' => sub {
+      my ($ua, $tx) = @_;
+      say $tx->result->dom->at('title')->text;
+    });
+  });
+
 =head2 What does "Worker 31842 has no heartbeat (30 seconds), restarting" mean?
 
 As long as they are accepting new connections, worker processes of all built-in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Mojolicious-7.36/lib/Mojolicious/Plugin/DefaultHelpers.pm 
new/Mojolicious-7.37/lib/Mojolicious/Plugin/DefaultHelpers.pm
--- old/Mojolicious-7.36/lib/Mojolicious/Plugin/DefaultHelpers.pm       
2017-06-24 15:01:30.000000000 +0200
+++ new/Mojolicious-7.37/lib/Mojolicious/Plugin/DefaultHelpers.pm       
2017-07-21 09:58:55.000000000 +0200
@@ -217,7 +217,7 @@
 
 =head2 b
 
-  %= b('test 123')->b64_encode
+  %= b('Joel is a slug')->slugify
 
 Turn string into a L<Mojo::ByteStream> object.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/Mojolicious-7.36/lib/Mojolicious/resources/templates/mojo/menubar.html.ep 
new/Mojolicious-7.37/lib/Mojolicious/resources/templates/mojo/menubar.html.ep
--- 
old/Mojolicious-7.36/lib/Mojolicious/resources/templates/mojo/menubar.html.ep   
    2017-06-24 15:01:30.000000000 +0200
+++ 
new/Mojolicious-7.37/lib/Mojolicious/resources/templates/mojo/menubar.html.ep   
    2017-07-18 18:40:47.000000000 +0200
@@ -65,6 +65,7 @@
     </div>
     <div id="mojobar-links">
       %= link_to Documentation => 'http://mojolicious.org/perldoc'
+      %= link_to Chat => 
'https://chat.mibbit.com/?channel=%23mojo&server=irc.perl.org'
       %= link_to Wiki => 'https://github.com/kraih/mojo/wiki'
       %= link_to GitHub => 'https://github.com/kraih/mojo'
       %= link_to CPAN => 'https://metacpan.org/release/Mojolicious/'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.36/lib/Mojolicious.pm 
new/Mojolicious-7.37/lib/Mojolicious.pm
--- old/Mojolicious-7.36/lib/Mojolicious.pm     2017-07-05 19:10:27.000000000 
+0200
+++ new/Mojolicious-7.37/lib/Mojolicious.pm     2017-07-23 17:49:09.000000000 
+0200
@@ -58,7 +58,7 @@
 has validator => sub { Mojolicious::Validator->new };
 
 our $CODENAME = 'Doughnut';
-our $VERSION  = '7.36';
+our $VERSION  = '7.37';
 
 sub AUTOLOAD {
   my $self = shift;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.36/t/mojo/bytestream.t 
new/Mojolicious-7.37/t/mojo/bytestream.t
--- old/Mojolicious-7.36/t/mojo/bytestream.t    2017-06-24 15:01:30.000000000 
+0200
+++ new/Mojolicious-7.37/t/mojo/bytestream.t    2017-07-21 09:55:15.000000000 
+0200
@@ -135,4 +135,10 @@
 # term_escape
 is b("\t\b\r\n\f")->term_escape, "\\x09\\x08\\x0d\n\\x0c", 'right result';
 
+# slugify
+is b("Un \x{e9}l\x{e9}phant \x{e0} l'or\x{e9}e du bois")->slugify->to_string,
+  'un-elephant-a-loree-du-bois', 'right result';
+is b("Un \x{e9}l\x{e9}phant \x{e0} l'or\x{e9}e du 
bois")->slugify(1)->to_string,
+  "un-\x{e9}l\x{e9}phant-\x{e0}-lor\x{e9}e-du-bois", 'right result';
+
 done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.36/t/mojo/ioloop.t 
new/Mojolicious-7.37/t/mojo/ioloop.t
--- old/Mojolicious-7.36/t/mojo/ioloop.t        2017-06-24 15:01:30.000000000 
+0200
+++ new/Mojolicious-7.37/t/mojo/ioloop.t        2017-07-19 18:43:26.000000000 
+0200
@@ -129,6 +129,12 @@
 Mojo::IOLoop->reset;
 ok time < ($time + 10), 'stopped automatically';
 
+# Reset events
+Mojo::IOLoop->singleton->on(finish => sub { });
+ok !!Mojo::IOLoop->singleton->has_subscribers('finish'), 'has subscribers';
+Mojo::IOLoop->reset;
+ok !Mojo::IOLoop->singleton->has_subscribers('finish'), 'no subscribers';
+
 # Stream
 my $buffer = '';
 $id = Mojo::IOLoop->server(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.36/t/mojo/reactor_ev.t 
new/Mojolicious-7.37/t/mojo/reactor_ev.t
--- old/Mojolicious-7.36/t/mojo/reactor_ev.t    2017-06-24 15:01:30.000000000 
+0200
+++ new/Mojolicious-7.37/t/mojo/reactor_ev.t    2017-07-19 18:36:19.000000000 
+0200
@@ -237,6 +237,12 @@
 $reactor->start;
 like $err, qr/works!/, 'right error';
 
+# Reset events
+$reactor->on(error => sub { });
+ok $reactor->has_subscribers('error'), 'has subscribers';
+$reactor->reset;
+ok !$reactor->has_subscribers('error'), 'no subscribers';
+
 # Recursion
 $timer   = undef;
 $reactor = $reactor->new;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.36/t/mojo/reactor_poll.t 
new/Mojolicious-7.37/t/mojo/reactor_poll.t
--- old/Mojolicious-7.36/t/mojo/reactor_poll.t  2017-06-24 15:01:30.000000000 
+0200
+++ new/Mojolicious-7.37/t/mojo/reactor_poll.t  2017-07-19 18:36:26.000000000 
+0200
@@ -234,6 +234,12 @@
 $reactor->start;
 like $err, qr/works!/, 'right error';
 
+# Reset events
+$reactor->on(error => sub { });
+ok $reactor->has_subscribers('error'), 'has subscribers';
+$reactor->reset;
+ok !$reactor->has_subscribers('error'), 'no subscribers';
+
 # Recursion
 $timer   = undef;
 $reactor = $reactor->new;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Mojolicious-7.36/t/mojo/util.t 
new/Mojolicious-7.37/t/mojo/util.t
--- old/Mojolicious-7.36/t/mojo/util.t  2017-06-24 15:01:30.000000000 +0200
+++ new/Mojolicious-7.37/t/mojo/util.t  2017-07-21 09:55:27.000000000 +0200
@@ -12,7 +12,7 @@
   qw(b64_decode b64_encode camelize class_to_file class_to_path decamelize),
   qw(decode dumper encode extract_usage getopt hmac_sha1_sum html_unescape),
   qw(html_attr_unescape md5_bytes md5_sum monkey_patch punycode_decode),
-  qw(punycode_encode quote secure_compare sha1_bytes sha1_sum),
+  qw(punycode_encode quote secure_compare sha1_bytes sha1_sum slugify),
   qw(split_cookie_header split_header steady_time tablify term_escape trim),
   qw(unindent unquote url_escape url_unescape xml_escape xor_encode);
 
@@ -512,6 +512,23 @@
 is term_escape("\x00\x09\x0b\x1f\x7f\x80\x9f"), '\x00\x09\x0b\x1f\x7f\x80\x9f',
   'right result';
 
+# slugify
+is slugify('a & b'),     'a-b',     'right result';
+is slugify('a &amp; b'), 'a-amp-b', 'right result';
+is slugify(123),         '123',     'right result';
+is slugify(' Jack & Jill like numbers 1,2,3 and 4 and silly characters 
?%.$!/'),
+  'jack-jill-like-numbers-123-and-4-and-silly-characters', 'right result';
+is slugify("Un \x{e9}l\x{e9}phant \x{e0} l'or\x{e9}e du bois"),
+  'un-elephant-a-loree-du-bois', 'right result';
+is slugify("Un \x{e9}l\x{e9}phant \x{e0} l'or\x{e9}e du bois", 1),
+  "un-\x{e9}l\x{e9}phant-\x{e0}-lor\x{e9}e-du-bois", 'right result';
+is slugify('Hello, World!'), 'hello-world', 'right result';
+is slugify('spam & eggs'),   'spam-eggs',   'right result';
+is slugify('spam & ıçüş',  1), 'spam-ıçüş', 'right result';
+is slugify('foo ıç bar',     1), 'foo-ıç-bar',  'right result';
+is slugify('    foo ıç bar', 1), 'foo-ıç-bar',  'right result';
+is slugify('你好',           1), '你好',        'right result';
+
 # Hide DATA usage from error messages
 eval { die 'whatever' };
 unlike $@, qr/DATA/, 'DATA has been hidden';


Reply via email to