Inline String::CamelCase::wordsplit() due to RT#123030
Dagfinn Ilmari Mannsåker [Tue, 20 Mar 2018 21:42:16 +0000 (21:42 +0000)]
The bug breaks installing DBICSL with anything that cares about
META.yml, e.g. Carton.

Changes
Makefile.PL
lib/DBIx/Class/Schema/Loader/Utils.pm

diff --git a/Changes b/Changes
index 87172f7..b8645c4 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,6 +1,7 @@
 Revision history for Perl extension DBIx::Class::Schema::Loader
 
         - Fix tests when the path to perl has spaces in it (GH#19)
+        - Inline String::CamelCase::wordsplit() due to RT#123030
 
 0.07048_01 - 2018-02-23
         - Convert from Module::Install to ExtUtils::MakeMaker + Distar (GH#17)
index a3735bc..c699884 100644 (file)
@@ -47,7 +47,6 @@ my %eumm_args = (
         'namespace::clean'            => '0.23',
         'Scope::Guard'                => '0.20',
         'String::ToIdentifier::EN'    => '0.05',
-        'String::CamelCase'           => '0.02',
         'Sub::Util'                   => '1.40',
         'Try::Tiny'                   => 0,
         # core, but specific versions not available on older perls
index 4fc5fb6..66a92c7 100644 (file)
@@ -4,7 +4,6 @@ package # hide from PAUSE
 use strict;
 use warnings;
 use Test::More;
-use String::CamelCase 'wordsplit';
 use Carp::Clan qw/^DBIx::Class/;
 use List::Util 'all';
 use namespace::clean;
@@ -22,6 +21,12 @@ use constant BY_NON_ALPHANUM =>
 my $LF   = "\x0a";
 my $CRLF = "\x0d\x0a";
 
+# Copied from String::CamelCase because of RT#123030
+sub wordsplit {
+    my $s = shift;
+    split /[_\s]+|\b|(?<![A-Z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])/, $s;
+}
+
 sub split_name($;$) {
     my ($name, $v) = @_;