Update Parse-CPAN-Meta to CPAN version 1.4412
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Mon, 17 Feb 2014 12:46:15 +0000 (12:46 +0000)
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>
Mon, 17 Feb 2014 13:19:37 +0000 (13:19 +0000)
  [DELTA]

1.4412    2014-02-17 07:14:43-05:00 America/New_York

    [FIXED]

    - Added prerequisite on Encode 2.11 (Paul Howarth)

1.4411    2014-02-16 23:06:00-05:00 America/New_York

    [FIXED]

    - Invalid UTF-8 encoding in YAML files are now replaced with "PERLQQ"
      quoting from the Encode module and without warnings.

    - Removed legacy test modifications for $ENV{PERL_CORE}

MANIFEST
Porting/Maintainers.pl
cpan/Parse-CPAN-Meta/lib/Parse/CPAN/Meta.pm
cpan/Parse-CPAN-Meta/t/02_api.t
cpan/Parse-CPAN-Meta/t/03_functions.t
cpan/Parse-CPAN-Meta/t/04_export.t
cpan/Parse-CPAN-Meta/t/05_errors.t
cpan/Parse-CPAN-Meta/t/data/BadMETA.yml [new file with mode: 0644]
cpan/Parse-CPAN-Meta/t/lib/Parse/CPAN/Meta/Test.pm

index e5dab21..3c561b7 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -1731,6 +1731,7 @@ cpan/Parse-CPAN-Meta/t/02_api.t
 cpan/Parse-CPAN-Meta/t/03_functions.t
 cpan/Parse-CPAN-Meta/t/04_export.t
 cpan/Parse-CPAN-Meta/t/05_errors.t
+cpan/Parse-CPAN-Meta/t/data/BadMETA.yml
 cpan/Parse-CPAN-Meta/t/data/META-VR.json
 cpan/Parse-CPAN-Meta/t/data/META-VR.yml
 cpan/Parse-CPAN-Meta/t/lib/Parse/CPAN/Meta/Test.pm
index 2e782ac..658a731 100755 (executable)
@@ -876,7 +876,7 @@ use File::Glob qw(:case);
     },
 
     'Parse::CPAN::Meta' => {
-        'DISTRIBUTION' => 'DAGOLDEN/Parse-CPAN-Meta-1.4410.tar.gz',
+        'DISTRIBUTION' => 'DAGOLDEN/Parse-CPAN-Meta-1.4412.tar.gz',
         'FILES'        => q[cpan/Parse-CPAN-Meta],
         'EXCLUDED'     => [
             qw(t/00-compile.t),
index 8b33229..1b63d89 100644 (file)
@@ -2,7 +2,7 @@ use 5.008001;
 use strict;
 package Parse::CPAN::Meta;
 # ABSTRACT: Parse META.yml and META.json CPAN metadata files
-our $VERSION = '1.4410'; # VERSION
+our $VERSION = '1.4412'; # VERSION
 
 use Exporter;
 use Carp 'croak';
@@ -70,7 +70,10 @@ sub json_backend {
 }
 
 sub _slurp {
-  open my $fh, "<:utf8", "$_[0]" ## no critic
+  require Encode;
+  require PerlIO::encoding;
+  local $PerlIO::encoding::fallback = Encode::PERLQQ()|Encode::STOP_AT_PARTIAL();
+  open my $fh, "<:encoding(UTF-8)", "$_[0]" ## no critic
     or die "can't open $_[0] for reading: $!";
   return do { local $/; <$fh> };
 }
@@ -93,10 +96,7 @@ sub _can_load {
 # Kept for backwards compatibility only
 # Create an object from a file
 sub LoadFile ($) {
-  require CPAN::Meta::YAML;
-  my $object = eval { CPAN::Meta::YAML::LoadFile(shift) };
-  croak $@ if $@;
-  return $object;
+  return Load(_slurp(shift));
 }
 
 # Parse a document from a string.
@@ -121,7 +121,7 @@ Parse::CPAN::Meta - Parse META.yml and META.json CPAN metadata files
 
 =head1 VERSION
 
-version 1.4410
+version 1.4412
 
 =head1 SYNOPSIS
 
index e9c62e3..517f7fe 100644 (file)
@@ -5,22 +5,13 @@ delete $ENV{PERL_JSON_BACKEND};
 
 # Testing of a known-bad file from an editor
 
-BEGIN {
-       if( $ENV{PERL_CORE} ) {
-               chdir 't';
-               @INC = ('../lib', 'lib');
-       }
-       else {
-               unshift @INC, 't/lib/';
-       }
-}
-
 use strict;
 BEGIN {
        $|  = 1;
        $^W = 1;
 }
 
+use lib 't/lib';
 use File::Spec::Functions ':ALL';
 use Parse::CPAN::Meta;
 use Parse::CPAN::Meta::Test;
@@ -78,6 +69,14 @@ my $meta_yaml = catfile( test_data_directory(), 'META-VR.yml' );
   is_deeply($from_yaml, $want, "load from YAML str results in expected data");
 }
 
+{
+  local $ENV{PERL_YAML_BACKEND}; # ensure we get CPAN::META::YAML
+
+  my @yaml   = Parse::CPAN::Meta::LoadFile( 't/data/BadMETA.yml' );
+  is($yaml[0]{author}[0], 'Olivier Mengu\xE9', "Bad UTF-8 is replaced");
+}
+
+
 SKIP: {
   skip "YAML module not installed", 2
     unless eval "require YAML; 1";
index a5deff9..5f6d1d8 100644 (file)
@@ -5,16 +5,6 @@ delete $ENV{PERL_JSON_BACKEND};
 
 # Testing of basic document structures
 
-BEGIN {
-       if( $ENV{PERL_CORE} ) {
-               chdir 't';
-               @INC = ('../lib', 'lib');
-       }
-       else {
-               unshift @INC, 't/lib/';
-       }
-}
-
 use strict;
 BEGIN {
        $|  = 1;
index 1a85d4e..b4766aa 100644 (file)
@@ -5,16 +5,6 @@ delete $ENV{PERL_JSON_BACKEND};
 
 # Testing of basic document structures
 
-BEGIN {
-       if( $ENV{PERL_CORE} ) {
-               chdir 't';
-               @INC = ('../lib', 'lib');
-       }
-       else {
-               unshift @INC, 't/lib/';
-       }
-}
-
 use strict;
 BEGIN {
        $|  = 1;
index 9217500..671d73b 100644 (file)
@@ -5,16 +5,6 @@ delete $ENV{PERL_JSON_BACKEND};
 
 # Testing of basic document structures
 
-BEGIN {
-       if( $ENV{PERL_CORE} ) {
-               chdir 't';
-               @INC = ('../lib', 'lib');
-       }
-       else {
-               unshift @INC, 't/lib/';
-       }
-}
-
 use strict;
 BEGIN {
        $|  = 1;
diff --git a/cpan/Parse-CPAN-Meta/t/data/BadMETA.yml b/cpan/Parse-CPAN-Meta/t/data/BadMETA.yml
new file mode 100644 (file)
index 0000000..79fece3
--- /dev/null
@@ -0,0 +1,24 @@
+---\r
+abstract: ~\r
+author:\r
+  - 'Olivier MenguĂ©'\r
+build_requires:\r
+  ExtUtils::MakeMaker: 6.36\r
+configure_requires:\r
+  ExtUtils::MakeMaker: 6.36\r
+distribution_type: module\r
+dynamic_config: 1\r
+generated_by: 'Module::Install version 1.06'\r
+license: perl\r
+meta-spec:\r
+  url: http://module-build.sourceforge.net/META-spec-v1.4.html\r
+  version: 1.4\r
+name: Foo\r
+no_index:\r
+  directory:\r
+    - inc\r
+requires:\r
+  perl: 5.005\r
+resources:\r
+  license: http://dev.perl.org/licenses/\r
+version: 0.01\r
index 3e86911..46024db 100644 (file)
@@ -16,11 +16,7 @@ BEGIN {
 }
 
 sub test_data_directory {
-       return(
-               $ENV{PERL_CORE}
-               ? File::Spec->catdir(File::Spec->updir, qw(lib Parse CPAN Meta t data))
-               : File::Spec->catdir(qw(t data))
-       );
+       return( File::Spec->catdir(qw(t data)) );
 }
 
 # 22 tests per call to yaml_ok