summaryrefslogtreecommitdiff
path: root/cpan/CPAN-Meta-YAML
diff options
context:
space:
mode:
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>2013-10-01 13:08:33 +0100
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>2013-10-01 13:08:33 +0100
commit9c5cc6d5f2f3230ec5491e7c32b781210129c3cd (patch)
treee4b0b5cc1db811d5b4507505af161c98b5045a86 /cpan/CPAN-Meta-YAML
parent7867c8228bb087815f7050b80053680ad9ccb2e6 (diff)
downloadperl-9c5cc6d5f2f3230ec5491e7c32b781210129c3cd.tar.gz
Update CPAN-Meta-YAML to CPAN version 0.010
[DELTA] 0.010 2013-09-23 13:11:20 America/New_York - Generated from ETHER/YAML-Tiny-1.55.tar.gz - Fix broken test when copying from YAML-Tiny - updated Makefile.PL logic to support PERL_NO_HIGHLANDER 0.009 2013-09-23 10:16:19 America/New_York - Generated from ETHER/YAML-Tiny-1.55.tar.gz - Makefile.PL will use UNINST=1 on old perls that might have an old version incorrectly installed into the core library path
Diffstat (limited to 'cpan/CPAN-Meta-YAML')
-rw-r--r--cpan/CPAN-Meta-YAML/lib/CPAN/Meta/YAML.pm1056
-rw-r--r--cpan/CPAN-Meta-YAML/t/01_compile.t8
-rw-r--r--cpan/CPAN-Meta-YAML/t/02_basic.t230
-rw-r--r--cpan/CPAN-Meta-YAML/t/03_regression.t426
-rw-r--r--cpan/CPAN-Meta-YAML/t/05_export.t8
-rw-r--r--cpan/CPAN-Meta-YAML/t/11_meta_yml.t498
-rw-r--r--cpan/CPAN-Meta-YAML/t/12_plagger.t114
-rw-r--r--cpan/CPAN-Meta-YAML/t/13_perl_smith.t252
-rw-r--r--cpan/CPAN-Meta-YAML/t/14_yaml_org.t76
-rw-r--r--cpan/CPAN-Meta-YAML/t/15_multibyte.t40
-rw-r--r--cpan/CPAN-Meta-YAML/t/16_nullrefs.t14
-rw-r--r--cpan/CPAN-Meta-YAML/t/17_toolbar.t52
-rw-r--r--cpan/CPAN-Meta-YAML/t/18_tap.t86
-rw-r--r--cpan/CPAN-Meta-YAML/t/19_errors.t12
-rw-r--r--cpan/CPAN-Meta-YAML/t/20_subclass.t52
-rw-r--r--cpan/CPAN-Meta-YAML/t/21_bom.t14
-rw-r--r--cpan/CPAN-Meta-YAML/t/22_comments.t100
-rw-r--r--cpan/CPAN-Meta-YAML/t/lib/Test.pm490
18 files changed, 1769 insertions, 1759 deletions
diff --git a/cpan/CPAN-Meta-YAML/lib/CPAN/Meta/YAML.pm b/cpan/CPAN-Meta-YAML/lib/CPAN/Meta/YAML.pm
index a9f4d6d94c..260f806b80 100644
--- a/cpan/CPAN-Meta-YAML/lib/CPAN/Meta/YAML.pm
+++ b/cpan/CPAN-Meta-YAML/lib/CPAN/Meta/YAML.pm
@@ -1,29 +1,38 @@
package CPAN::Meta::YAML;
{
- $CPAN::Meta::YAML::VERSION = '0.008';
+ $CPAN::Meta::YAML::VERSION = '0.010';
}
+BEGIN {
+ $CPAN::Meta::YAML::AUTHORITY = 'cpan:ADAMK';
+}
+{
+; # original $VERSION removed by Doppelgaenger
+}
+# git description: v1.54-8-g4c3002d
+
use strict;
+use warnings;
# UTF Support?
sub HAVE_UTF8 () { $] >= 5.007003 }
BEGIN {
- if ( HAVE_UTF8 ) {
- # The string eval helps hide this from Test::MinimumVersion
- eval "require utf8;";
- die "Failed to load UTF-8 support" if $@;
- }
-
- # Class structure
- require 5.004;
- require Exporter;
- require Carp;
- @CPAN::Meta::YAML::ISA = qw{ Exporter };
- @CPAN::Meta::YAML::EXPORT = qw{ Load Dump };
- @CPAN::Meta::YAML::EXPORT_OK = qw{ LoadFile DumpFile freeze thaw };
-
- # Error storage
- $CPAN::Meta::YAML::errstr = '';
+ if ( HAVE_UTF8 ) {
+ # The string eval helps hide this from Test::MinimumVersion
+ eval "require utf8;";
+ die "Failed to load UTF-8 support" if $@;
+ }
+
+ # Class structure
+ require 5.004;
+ require Exporter;
+ require Carp;
+ @CPAN::Meta::YAML::ISA = qw{ Exporter };
+ @CPAN::Meta::YAML::EXPORT = qw{ Load Dump };
+ @CPAN::Meta::YAML::EXPORT_OK = qw{ LoadFile DumpFile freeze thaw };
+
+ # Error storage
+ $CPAN::Meta::YAML::errstr = '';
}
# The character class of all characters we need to escape
@@ -33,25 +42,25 @@ BEGIN {
# Printed form of the unprintable characters in the lowest range
# of ASCII characters, listed by ASCII ordinal position.
my @UNPRINTABLE = qw(
- z x01 x02 x03 x04 x05 x06 a
- x08 t n v f r x0e x0f
- x10 x11 x12 x13 x14 x15 x16 x17
- x18 x19 x1a e x1c x1d x1e x1f
+ z x01 x02 x03 x04 x05 x06 a
+ x08 t n v f r x0e x0f
+ x10 x11 x12 x13 x14 x15 x16 x17
+ x18 x19 x1a e x1c x1d x1e x1f
);
# Printable characters for escapes
my %UNESCAPES = (
- z => "\x00", a => "\x07", t => "\x09",
- n => "\x0a", v => "\x0b", f => "\x0c",
- r => "\x0d", e => "\x1b", '\\' => '\\',
+ z => "\x00", a => "\x07", t => "\x09",
+ n => "\x0a", v => "\x0b", f => "\x0c",
+ r => "\x0d", e => "\x1b", '\\' => '\\',
);
# Special magic boolean words
my %QUOTE = map { $_ => 1 } qw{
- null Null NULL
- y Y yes Yes YES n N no No NO
- true True TRUE false False FALSE
- on On ON off Off OFF
+ null Null NULL
+ y Y yes Yes YES n N no No NO
+ true True TRUE false False FALSE
+ on On ON off Off OFF
};
@@ -63,496 +72,496 @@ my %QUOTE = map { $_ => 1 } qw{
# Create an empty CPAN::Meta::YAML object
sub new {
- my $class = shift;
- bless [ @_ ], $class;
+ my $class = shift;
+ bless [ @_ ], $class;
}
# Create an object from a file
sub read {
- my $class = ref $_[0] ? ref shift : shift;
-
- # Check the file
- my $file = shift or return $class->_error( 'You did not specify a file name' );
- return $class->_error( "File '$file' does not exist" ) unless -e $file;
- return $class->_error( "'$file' is a directory, not a file" ) unless -f _;
- return $class->_error( "Insufficient permissions to read '$file'" ) unless -r _;
-
- # Slurp in the file
- local $/ = undef;
- local *CFG;
- unless ( open(CFG, $file) ) {
- return $class->_error("Failed to open file '$file': $!");
- }
- my $contents = <CFG>;
- unless ( close(CFG) ) {
- return $class->_error("Failed to close file '$file': $!");
- }
-
- $class->read_string( $contents );
+ my $class = ref $_[0] ? ref shift : shift;
+
+ # Check the file
+ my $file = shift or return $class->_error( 'You did not specify a file name' );
+ return $class->_error( "File '$file' does not exist" ) unless -e $file;
+ return $class->_error( "'$file' is a directory, not a file" ) unless -f _;
+ return $class->_error( "Insufficient permissions to read '$file'" ) unless -r _;
+
+ # Slurp in the file
+ local $/ = undef;
+ local *CFG;
+ unless ( open(CFG, $file) ) {
+ return $class->_error("Failed to open file '$file': $!");
+ }
+ my $contents = <CFG>;
+ unless ( close(CFG) ) {
+ return $class->_error("Failed to close file '$file': $!");
+ }
+
+ $class->read_string( $contents );
}
# Create an object from a string
sub read_string {
- my $class = ref $_[0] ? ref shift : shift;
- my $self = bless [], $class;
- my $string = $_[0];
- eval {
- unless ( defined $string ) {
- die \"Did not provide a string to load";
- }
-
- # Byte order marks
- # NOTE: Keeping this here to educate maintainers
- # my %BOM = (
- # "\357\273\277" => 'UTF-8',
- # "\376\377" => 'UTF-16BE',
- # "\377\376" => 'UTF-16LE',
- # "\377\376\0\0" => 'UTF-32LE'
- # "\0\0\376\377" => 'UTF-32BE',
- # );
- if ( $string =~ /^(?:\376\377|\377\376|\377\376\0\0|\0\0\376\377)/ ) {
- die \"Stream has a non UTF-8 BOM";
- } else {
- # Strip UTF-8 bom if found, we'll just ignore it
- $string =~ s/^\357\273\277//;
- }
-
- # Try to decode as utf8
- utf8::decode($string) if HAVE_UTF8;
-
- # Check for some special cases
- return $self unless length $string;
- unless ( $string =~ /[\012\015]+\z/ ) {
- die \"Stream does not end with newline character";
- }
-
- # Split the file into lines
- my @lines = grep { ! /^\s*(?:\#.*)?\z/ }
- split /(?:\015{1,2}\012|\015|\012)/, $string;
-
- # Strip the initial YAML header
- @lines and $lines[0] =~ /^\%YAML[: ][\d\.]+.*\z/ and shift @lines;
-
- # A nibbling parser
- while ( @lines ) {
- # Do we have a document header?
- if ( $lines[0] =~ /^---\s*(?:(.+)\s*)?\z/ ) {
- # Handle scalar documents
- shift @lines;
- if ( defined $1 and $1 !~ /^(?:\#.+|\%YAML[: ][\d\.]+)\z/ ) {
- push @$self, $self->_read_scalar( "$1", [ undef ], \@lines );
- next;
- }
- }
-
- if ( ! @lines or $lines[0] =~ /^(?:---|\.\.\.)/ ) {
- # A naked document
- push @$self, undef;
- while ( @lines and $lines[0] !~ /^---/ ) {
- shift @lines;
- }
-
- } elsif ( $lines[0] =~ /^\s*\-/ ) {
- # An array at the root
- my $document = [ ];
- push @$self, $document;
- $self->_read_array( $document, [ 0 ], \@lines );
-
- } elsif ( $lines[0] =~ /^(\s*)\S/ ) {
- # A hash at the root
- my $document = { };
- push @$self, $document;
- $self->_read_hash( $document, [ length($1) ], \@lines );
-
- } else {
- die \"CPAN::Meta::YAML failed to classify the line '$lines[0]'";
- }
- }
- };
- if ( ref $@ eq 'SCALAR' ) {
- return $self->_error(${$@});
- } elsif ( $@ ) {
- require Carp;
- Carp::croak($@);
- }
-
- return $self;
+ my $class = ref $_[0] ? ref shift : shift;
+ my $self = bless [], $class;
+ my $string = $_[0];
+ eval {
+ unless ( defined $string ) {
+ die \"Did not provide a string to load";
+ }
+
+ # Byte order marks
+ # NOTE: Keeping this here to educate maintainers
+ # my %BOM = (
+ # "\357\273\277" => 'UTF-8',
+ # "\376\377" => 'UTF-16BE',
+ # "\377\376" => 'UTF-16LE',
+ # "\377\376\0\0" => 'UTF-32LE'
+ # "\0\0\376\377" => 'UTF-32BE',
+ # );
+ if ( $string =~ /^(?:\376\377|\377\376|\377\376\0\0|\0\0\376\377)/ ) {
+ die \"Stream has a non UTF-8 BOM";
+ } else {
+ # Strip UTF-8 bom if found, we'll just ignore it
+ $string =~ s/^\357\273\277//;
+ }
+
+ # Try to decode as utf8
+ utf8::decode($string) if HAVE_UTF8;
+
+ # Check for some special cases
+ return $self unless length $string;
+ unless ( $string =~ /[\012\015]+\z/ ) {
+ die \"Stream does not end with newline character";
+ }
+
+ # Split the file into lines
+ my @lines = grep { ! /^\s*(?:\#.*)?\z/ }
+ split /(?:\015{1,2}\012|\015|\012)/, $string;
+
+ # Strip the initial YAML header
+ @lines and $lines[0] =~ /^\%YAML[: ][\d\.]+.*\z/ and shift @lines;
+
+ # A nibbling parser
+ while ( @lines ) {
+ # Do we have a document header?
+ if ( $lines[0] =~ /^---\s*(?:(.+)\s*)?\z/ ) {
+ # Handle scalar documents
+ shift @lines;
+ if ( defined $1 and $1 !~ /^(?:\#.+|\%YAML[: ][\d\.]+)\z/ ) {
+ push @$self, $self->_read_scalar( "$1", [ undef ], \@lines );
+ next;
+ }
+ }
+
+ if ( ! @lines or $lines[0] =~ /^(?:---|\.\.\.)/ ) {
+ # A naked document
+ push @$self, undef;
+ while ( @lines and $lines[0] !~ /^---/ ) {
+ shift @lines;
+ }
+
+ } elsif ( $lines[0] =~ /^\s*\-/ ) {
+ # An array at the root
+ my $document = [ ];
+ push @$self, $document;
+ $self->_read_array( $document, [ 0 ], \@lines );
+
+ } elsif ( $lines[0] =~ /^(\s*)\S/ ) {
+ # A hash at the root
+ my $document = { };
+ push @$self, $document;
+ $self->_read_hash( $document, [ length($1) ], \@lines );
+
+ } else {
+ die \"CPAN::Meta::YAML failed to classify the line '$lines[0]'";
+ }
+ }
+ };
+ if ( ref $@ eq 'SCALAR' ) {
+ return $self->_error(${$@});
+ } elsif ( $@ ) {
+ require Carp;
+ Carp::croak($@);
+ }
+
+ return $self;
}
# Deparse a scalar string to the actual scalar
sub _read_scalar {
- my ($self, $string, $indent, $lines) = @_;
-
- # Trim trailing whitespace
- $string =~ s/\s*\z//;
-
- # Explitic null/undef
- return undef if $string eq '~';
-
- # Single quote
- if ( $string =~ /^\'(.*?)\'(?:\s+\#.*)?\z/ ) {
- return '' unless defined $1;
- $string = $1;
- $string =~ s/\'\'/\'/g;
- return $string;
- }
-
- # Double quote.
- # The commented out form is simpler, but overloaded the Perl regex
- # engine due to recursion and backtracking problems on strings
- # larger than 32,000ish characters. Keep it for reference purposes.
- # if ( $string =~ /^\"((?:\\.|[^\"])*)\"\z/ ) {
- if ( $string =~ /^\"([^\\"]*(?:\\.[^\\"]*)*)\"(?:\s+\#.*)?\z/ ) {
- # Reusing the variable is a little ugly,
- # but avoids a new variable and a string copy.
- $string = $1;
- $string =~ s/\\"/"/g;
- $string =~ s/\\([never\\fartz]|x([0-9a-fA-F]{2}))/(length($1)>1)?pack("H2",$2):$UNESCAPES{$1}/gex;
- return $string;
- }
-
- # Special cases
- if ( $string =~ /^[\'\"!&]/ ) {
- die \"CPAN::Meta::YAML does not support a feature in line '$string'";
- }
- return {} if $string =~ /^{}(?:\s+\#.*)?\z/;
- return [] if $string =~ /^\[\](?:\s+\#.*)?\z/;
-
- # Regular unquoted string
- if ( $string !~ /^[>|]/ ) {
- if (
- $string =~ /^(?:-(?:\s|$)|[\@\%\`])/
- or
- $string =~ /:(?:\s|$)/
- ) {
- die \"CPAN::Meta::YAML found illegal characters in plain scalar: '$string'";
- }
- $string =~ s/\s+#.*\z//;
- return $string;
- }
-
- # Error
- die \"CPAN::Meta::YAML failed to find multi-line scalar content" unless @$lines;
-
- # Check the indent depth
- $lines->[0] =~ /^(\s*)/;
- $indent->[-1] = length("$1");
- if ( defined $indent->[-2] and $indent->[-1] <= $indent->[-2] ) {
- die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'";
- }
-
- # Pull the lines
- my @multiline = ();
- while ( @$lines ) {
- $lines->[0] =~ /^(\s*)/;
- last unless length($1) >= $indent->[-1];
- push @multiline, substr(shift(@$lines), length($1));
- }
-
- my $j = (substr($string, 0, 1) eq '>') ? ' ' : "\n";
- my $t = (substr($string, 1, 1) eq '-') ? '' : "\n";
- return join( $j, @multiline ) . $t;
+ my ($self, $string, $indent, $lines) = @_;
+
+ # Trim trailing whitespace
+ $string =~ s/\s*\z//;
+
+ # Explitic null/undef
+ return undef if $string eq '~';
+
+ # Single quote
+ if ( $string =~ /^\'(.*?)\'(?:\s+\#.*)?\z/ ) {
+ return '' unless defined $1;
+ $string = $1;
+ $string =~ s/\'\'/\'/g;
+ return $string;
+ }
+
+ # Double quote.
+ # The commented out form is simpler, but overloaded the Perl regex
+ # engine due to recursion and backtracking problems on strings
+ # larger than 32,000ish characters. Keep it for reference purposes.
+ # if ( $string =~ /^\"((?:\\.|[^\"])*)\"\z/ ) {
+ if ( $string =~ /^\"([^\\"]*(?:\\.[^\\"]*)*)\"(?:\s+\#.*)?\z/ ) {
+ # Reusing the variable is a little ugly,
+ # but avoids a new variable and a string copy.
+ $string = $1;
+ $string =~ s/\\"/"/g;
+ $string =~ s/\\([never\\fartz]|x([0-9a-fA-F]{2}))/(length($1)>1)?pack("H2",$2):$UNESCAPES{$1}/gex;
+ return $string;
+ }
+
+ # Special cases
+ if ( $string =~ /^[\'\"!&]/ ) {
+ die \"CPAN::Meta::YAML does not support a feature in line '$string'";
+ }
+ return {} if $string =~ /^{}(?:\s+\#.*)?\z/;
+ return [] if $string =~ /^\[\](?:\s+\#.*)?\z/;
+
+ # Regular unquoted string
+ if ( $string !~ /^[>|]/ ) {
+ if (
+ $string =~ /^(?:-(?:\s|$)|[\@\%\`])/
+ or
+ $string =~ /:(?:\s|$)/
+ ) {
+ die \"CPAN::Meta::YAML found illegal characters in plain scalar: '$string'";
+ }
+ $string =~ s/\s+#.*\z//;
+ return $string;
+ }
+
+ # Error
+ die \"CPAN::Meta::YAML failed to find multi-line scalar content" unless @$lines;
+
+ # Check the indent depth
+ $lines->[0] =~ /^(\s*)/;
+ $indent->[-1] = length("$1");
+ if ( defined $indent->[-2] and $indent->[-1] <= $indent->[-2] ) {
+ die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'";
+ }
+
+ # Pull the lines
+ my @multiline = ();
+ while ( @$lines ) {
+ $lines->[0] =~ /^(\s*)/;
+ last unless length($1) >= $indent->[-1];
+ push @multiline, substr(shift(@$lines), length($1));
+ }
+
+ my $j = (substr($string, 0, 1) eq '>') ? ' ' : "\n";
+ my $t = (substr($string, 1, 1) eq '-') ? '' : "\n";
+ return join( $j, @multiline ) . $t;
}
# Parse an array
sub _read_array {
- my ($self, $array, $indent, $lines) = @_;
-
- while ( @$lines ) {
- # Check for a new document
- if ( $lines->[0] =~ /^(?:---|\.\.\.)/ ) {
- while ( @$lines and $lines->[0] !~ /^---/ ) {
- shift @$lines;
- }
- return 1;
- }
-
- # Check the indent level
- $lines->[0] =~ /^(\s*)/;
- if ( length($1) < $indent->[-1] ) {
- return 1;
- } elsif ( length($1) > $indent->[-1] ) {
- die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'";
- }
-
- if ( $lines->[0] =~ /^(\s*\-\s+)[^\'\"]\S*\s*:(?:\s+|$)/ ) {
- # Inline nested hash
- my $indent2 = length("$1");
- $lines->[0] =~ s/-/ /;
- push @$array, { };
- $self->_read_hash( $array->[-1], [ @$indent, $indent2 ], $lines );
-
- } elsif ( $lines->[0] =~ /^\s*\-(\s*)(.+?)\s*\z/ ) {
- # Array entry with a value
- shift @$lines;
- push @$array, $self->_read_scalar( "$2", [ @$indent, undef ], $lines );
-
- } elsif ( $lines->[0] =~ /^\s*\-\s*\z/ ) {
- shift @$lines;
- unless ( @$lines ) {
- push @$array, undef;
- return 1;
- }
- if ( $lines->[0] =~ /^(\s*)\-/ ) {
- my $indent2 = length("$1");
- if ( $indent->[-1] == $indent2 ) {
- # Null array entry
- push @$array, undef;
- } else {
- # Naked indenter
- push @$array, [ ];
- $self->_read_array( $array->[-1], [ @$indent, $indent2 ], $lines );
- }
-
- } elsif ( $lines->[0] =~ /^(\s*)\S/ ) {
- push @$array, { };
- $self->_read_hash( $array->[-1], [ @$indent, length("$1") ], $lines );
-
- } else {
- die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'";
- }
-
- } elsif ( defined $indent->[-2] and $indent->[-1] == $indent->[-2] ) {
- # This is probably a structure like the following...
- # ---
- # foo:
- # - list
- # bar: value
- #
- # ... so lets return and let the hash parser handle it
- return 1;
-
- } else {
- die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'";
- }
- }
-
- return 1;
+ my ($self, $array, $indent, $lines) = @_;
+
+ while ( @$lines ) {
+ # Check for a new document
+ if ( $lines->[0] =~ /^(?:---|\.\.\.)/ ) {
+ while ( @$lines and $lines->[0] !~ /^---/ ) {
+ shift @$lines;
+ }
+ return 1;
+ }
+
+ # Check the indent level
+ $lines->[0] =~ /^(\s*)/;
+ if ( length($1) < $indent->[-1] ) {
+ return 1;
+ } elsif ( length($1) > $indent->[-1] ) {
+ die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'";
+ }
+
+ if ( $lines->[0] =~ /^(\s*\-\s+)[^\'\"]\S*\s*:(?:\s+|$)/ ) {
+ # Inline nested hash
+ my $indent2 = length("$1");
+ $lines->[0] =~ s/-/ /;
+ push @$array, { };
+ $self->_read_hash( $array->[-1], [ @$indent, $indent2 ], $lines );
+
+ } elsif ( $lines->[0] =~ /^\s*\-(\s*)(.+?)\s*\z/ ) {
+ # Array entry with a value
+ shift @$lines;
+ push @$array, $self->_read_scalar( "$2", [ @$indent, undef ], $lines );
+
+ } elsif ( $lines->[0] =~ /^\s*\-\s*\z/ ) {
+ shift @$lines;
+ unless ( @$lines ) {
+ push @$array, undef;
+ return 1;
+ }
+ if ( $lines->[0] =~ /^(\s*)\-/ ) {
+ my $indent2 = length("$1");
+ if ( $indent->[-1] == $indent2 ) {
+ # Null array entry
+ push @$array, undef;
+ } else {
+ # Naked indenter
+ push @$array, [ ];
+ $self->_read_array( $array->[-1], [ @$indent, $indent2 ], $lines );
+ }
+
+ } elsif ( $lines->[0] =~ /^(\s*)\S/ ) {
+ push @$array, { };
+ $self->_read_hash( $array->[-1], [ @$indent, length("$1") ], $lines );
+
+ } else {
+ die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'";
+ }
+
+ } elsif ( defined $indent->[-2] and $indent->[-1] == $indent->[-2] ) {
+ # This is probably a structure like the following...
+ # ---
+ # foo:
+ # - list
+ # bar: value
+ #
+ # ... so lets return and let the hash parser handle it
+ return 1;
+
+ } else {
+ die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'";
+ }
+ }
+
+ return 1;
}
# Parse an array
sub _read_hash {
- my ($self, $hash, $indent, $lines) = @_;
-
- while ( @$lines ) {
- # Check for a new document
- if ( $lines->[0] =~ /^(?:---|\.\.\.)/ ) {
- while ( @$lines and $lines->[0] !~ /^---/ ) {
- shift @$lines;
- }
- return 1;
- }
-
- # Check the indent level
- $lines->[0] =~ /^(\s*)/;
- if ( length($1) < $indent->[-1] ) {
- return 1;
- } elsif ( length($1) > $indent->[-1] ) {
- die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'";
- }
-
- # Get the key
- unless ( $lines->[0] =~ s/^\s*([^\'\" ][^\n]*?)\s*:(\s+(?:\#.*)?|$)// ) {
- if ( $lines->[0] =~ /^\s*[?\'\"]/ ) {
- die \"CPAN::Meta::YAML does not support a feature in line '$lines->[0]'";
- }
- die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'";
- }
- my $key = $1;
-
- # Do we have a value?
- if ( length $lines->[0] ) {
- # Yes
- $hash->{$key} = $self->_read_scalar( shift(@$lines), [ @$indent, undef ], $lines );
- } else {
- # An indent
- shift @$lines;
- unless ( @$lines ) {
- $hash->{$key} = undef;
- return 1;
- }
- if ( $lines->[0] =~ /^(\s*)-/ ) {
- $hash->{$key} = [];
- $self->_read_array( $hash->{$key}, [ @$indent, length($1) ], $lines );
- } elsif ( $lines->[0] =~ /^(\s*)./ ) {
- my $indent2 = length("$1");
- if ( $indent->[-1] >= $indent2 ) {
- # Null hash entry
- $hash->{$key} = undef;
- } else {
- $hash->{$key} = {};
- $self->_read_hash( $hash->{$key}, [ @$indent, length($1) ], $lines );
- }
- }
- }
- }
-
- return 1;
+ my ($self, $hash, $indent, $lines) = @_;
+
+ while ( @$lines ) {
+ # Check for a new document
+ if ( $lines->[0] =~ /^(?:---|\.\.\.)/ ) {
+ while ( @$lines and $lines->[0] !~ /^---/ ) {
+ shift @$lines;
+ }
+ return 1;
+ }
+
+ # Check the indent level
+ $lines->[0] =~ /^(\s*)/;
+ if ( length($1) < $indent->[-1] ) {
+ return 1;
+ } elsif ( length($1) > $indent->[-1] ) {
+ die \"CPAN::Meta::YAML found bad indenting in line '$lines->[0]'";
+ }
+
+ # Get the key
+ unless ( $lines->[0] =~ s/^\s*([^\'\" ][^\n]*?)\s*:(\s+(?:\#.*)?|$)// ) {
+ if ( $lines->[0] =~ /^\s*[?\'\"]/ ) {
+ die \"CPAN::Meta::YAML does not support a feature in line '$lines->[0]'";
+ }
+ die \"CPAN::Meta::YAML failed to classify line '$lines->[0]'";
+ }
+ my $key = $1;
+
+ # Do we have a value?
+ if ( length $lines->[0] ) {
+ # Yes
+ $hash->{$key} = $self->_read_scalar( shift(@$lines), [ @$indent, undef ], $lines );
+ } else {
+ # An indent
+ shift @$lines;
+ unless ( @$lines ) {
+ $hash->{$key} = undef;
+ return 1;
+ }
+ if ( $lines->[0] =~ /^(\s*)-/ ) {
+ $hash->{$key} = [];
+ $self->_read_array( $hash->{$key}, [ @$indent, length($1) ], $lines );
+ } elsif ( $lines->[0] =~ /^(\s*)./ ) {
+ my $indent2 = length("$1");
+ if ( $indent->[-1] >= $indent2 ) {
+ # Null hash entry
+ $hash->{$key} = undef;
+ } else {
+ $hash->{$key} = {};
+ $self->_read_hash( $hash->{$key}, [ @$indent, length($1) ], $lines );
+ }
+ }
+ }
+ }
+
+ return 1;
}
# Save an object to a file
sub write {
- my $self = shift;
- my $file = shift or return $self->_error('No file name provided');
+ my $self = shift;
+ my $file = shift or return $self->_error('No file name provided');
- # Write it to the file
- open( CFG, '>' . $file ) or return $self->_error(
- "Failed to open file '$file' for writing: $!"
- );
- print CFG $self->write_string;
- close CFG;
+ # Write it to the file
+ open( CFG, '>' . $file ) or return $self->_error(
+ "Failed to open file '$file' for writing: $!"
+ );
+ print CFG $self->write_string;
+ close CFG;
- return 1;
+ return 1;
}
# Save an object to a string
sub write_string {
- my $self = shift;
- return '' unless @$self;
-
- # Iterate over the documents
- my $indent = 0;
- my @lines = ();
- foreach my $cursor ( @$self ) {
- push @lines, '---';
-
- # An empty document
- if ( ! defined $cursor ) {
- # Do nothing
-
- # A scalar document
- } elsif ( ! ref $cursor ) {
- $lines[-1] .= ' ' . $self->_write_scalar( $cursor, $indent );
-
- # A list at the root
- } elsif ( ref $cursor eq 'ARRAY' ) {
- unless ( @$cursor ) {
- $lines[-1] .= ' []';
- next;
- }
- push @lines, $self->_write_array( $cursor, $indent, {} );
-
- # A hash at the root
- } elsif ( ref $cursor eq 'HASH' ) {
- unless ( %$cursor ) {
- $lines[-1] .= ' {}';
- next;
- }
- push @lines, $self->_write_hash( $cursor, $indent, {} );
-
- } else {
- Carp::croak("Cannot serialize " . ref($cursor));
- }
- }
-
- join '', map { "$_\n" } @lines;
+ my $self = shift;
+ return '' unless @$self;
+
+ # Iterate over the documents
+ my $indent = 0;
+ my @lines = ();
+ foreach my $cursor ( @$self ) {
+ push @lines, '---';
+
+ # An empty document
+ if ( ! defined $cursor ) {
+ # Do nothing
+
+ # A scalar document
+ } elsif ( ! ref $cursor ) {
+ $lines[-1] .= ' ' . $self->_write_scalar( $cursor, $indent );
+
+ # A list at the root
+ } elsif ( ref $cursor eq 'ARRAY' ) {
+ unless ( @$cursor ) {
+ $lines[-1] .= ' []';
+ next;
+ }
+ push @lines, $self->_write_array( $cursor, $indent, {} );
+
+ # A hash at the root
+ } elsif ( ref $cursor eq 'HASH' ) {
+ unless ( %$cursor ) {
+ $lines[-1] .= ' {}';
+ next;
+ }
+ push @lines, $self->_write_hash( $cursor, $indent, {} );
+
+ } else {
+ Carp::croak("Cannot serialize " . ref($cursor));
+ }
+ }
+
+ join '', map { "$_\n" } @lines;
}
sub _write_scalar {
- my $string = $_[1];
- return '~' unless defined $string;
- return "''" unless length $string;
- if ( $string =~ /[\x00-\x08\x0b-\x0d\x0e-\x1f\"\'\n]/ ) {
- $string =~ s/\\/\\\\/g;
- $string =~ s/"/\\"/g;
- $string =~ s/\n/\\n/g;
- $string =~ s/([\x00-\x1f])/\\$UNPRINTABLE[ord($1)]/g;
- return qq|"$string"|;
- }
- if ( $string =~ /(?:^\W|\s|:\z)/ or $QUOTE{$string} ) {
- return "'$string'";
- }
- return $string;
+ my $string = $_[1];
+ return '~' unless defined $string;
+ return "''" unless length $string;
+ if ( $string =~ /[\x00-\x08\x0b-\x0d\x0e-\x1f\"\'\n]/ ) {
+ $string =~ s/\\/\\\\/g;
+ $string =~ s/"/\\"/g;
+ $string =~ s/\n/\\n/g;
+ $string =~ s/([\x00-\x1f])/\\$UNPRINTABLE[ord($1)]/g;
+ return qq|"$string"|;
+ }
+ if ( $string =~ /(?:^\W|\s|:\z)/ or $QUOTE{$string} ) {
+ return "'$string'";
+ }
+ return $string;
}
sub _write_array {
- my ($self, $array, $indent, $seen) = @_;
- if ( $seen->{refaddr($array)}++ ) {
- die "CPAN::Meta::YAML does not support circular references";
- }
- my @lines = ();
- foreach my $el ( @$array ) {
- my $line = (' ' x $indent) . '-';
- my $type = ref $el;
- if ( ! $type ) {
- $line .= ' ' . $self->_write_scalar( $el, $indent + 1 );
- push @lines, $line;
-
- } elsif ( $type eq 'ARRAY' ) {
- if ( @$el ) {
- push @lines, $line;
- push @lines, $self->_write_array( $el, $indent + 1, $seen );
- } else {
- $line .= ' []';
- push @lines, $line;
- }
-
- } elsif ( $type eq 'HASH' ) {
- if ( keys %$el ) {
- push @lines, $line;
- push @lines, $self->_write_hash( $el, $indent + 1, $seen );
- } else {
- $line .= ' {}';
- push @lines, $line;
- }
-
- } else {
- die "CPAN::Meta::YAML does not support $type references";
- }
- }
-
- @lines;
+ my ($self, $array, $indent, $seen) = @_;
+ if ( $seen->{refaddr($array)}++ ) {
+ die "CPAN::Meta::YAML does not support circular references";
+ }
+ my @lines = ();
+ foreach my $el ( @$array ) {
+ my $line = (' ' x $indent) . '-';
+ my $type = ref $el;
+ if ( ! $type ) {
+ $line .= ' ' . $self->_write_scalar( $el, $indent + 1 );
+ push @lines, $line;
+
+ } elsif ( $type eq 'ARRAY' ) {
+ if ( @$el ) {
+ push @lines, $line;
+ push @lines, $self->_write_array( $el, $indent + 1, $seen );
+ } else {
+ $line .= ' []';
+ push @lines, $line;
+ }
+
+ } elsif ( $type eq 'HASH' ) {
+ if ( keys %$el ) {
+ push @lines, $line;
+ push @lines, $self->_write_hash( $el, $indent + 1, $seen );
+ } else {
+ $line .= ' {}';
+ push @lines, $line;
+ }
+
+ } else {
+ die "CPAN::Meta::YAML does not support $type references";
+ }
+ }
+
+ @lines;
}
sub _write_hash {
- my ($self, $hash, $indent, $seen) = @_;
- if ( $seen->{refaddr($hash)}++ ) {
- die "CPAN::Meta::YAML does not support circular references";
- }
- my @lines = ();
- foreach my $name ( sort keys %$hash ) {
- my $el = $hash->{$name};
- my $line = (' ' x $indent) . "$name:";
- my $type = ref $el;
- if ( ! $type ) {
- $line .= ' ' . $self->_write_scalar( $el, $indent + 1 );
- push @lines, $line;
-
- } elsif ( $type eq 'ARRAY' ) {
- if ( @$el ) {
- push @lines, $line;
- push @lines, $self->_write_array( $el, $indent + 1, $seen );
- } else {
- $line .= ' []';
- push @lines, $line;
- }
-
- } elsif ( $type eq 'HASH' ) {
- if ( keys %$el ) {
- push @lines, $line;
- push @lines, $self->_write_hash( $el, $indent + 1, $seen );
- } else {
- $line .= ' {}';
- push @lines, $line;
- }
-
- } else {
- die "CPAN::Meta::YAML does not support $type references";
- }
- }
-
- @lines;
+ my ($self, $hash, $indent, $seen) = @_;
+ if ( $seen->{refaddr($hash)}++ ) {
+ die "CPAN::Meta::YAML does not support circular references";
+ }
+ my @lines = ();
+ foreach my $name ( sort keys %$hash ) {
+ my $el = $hash->{$name};
+ my $line = (' ' x $indent) . "$name:";
+ my $type = ref $el;
+ if ( ! $type ) {
+ $line .= ' ' . $self->_write_scalar( $el, $indent + 1 );
+ push @lines, $line;
+
+ } elsif ( $type eq 'ARRAY' ) {
+ if ( @$el ) {
+ push @lines, $line;
+ push @lines, $self->_write_array( $el, $indent + 1, $seen );
+ } else {
+ $line .= ' []';
+ push @lines, $line;
+ }
+
+ } elsif ( $type eq 'HASH' ) {
+ if ( keys %$el ) {
+ push @lines, $line;
+ push @lines, $self->_write_hash( $el, $indent + 1, $seen );
+ } else {
+ $line .= ' {}';
+ push @lines, $line;
+ }
+
+ } else {
+ die "CPAN::Meta::YAML does not support $type references";
+ }
+ }
+
+ @lines;
}
# Set error
sub _error {
- $CPAN::Meta::YAML::errstr = $_[1];
- undef;
+ $CPAN::Meta::YAML::errstr = $_[1];
+ undef;
}
# Retrieve error
sub errstr {
- $CPAN::Meta::YAML::errstr;
+ $CPAN::Meta::YAML::errstr;
}
@@ -563,43 +572,43 @@ sub errstr {
# YAML Compatibility
sub Dump {
- CPAN::Meta::YAML->new(@_)->write_string;
+ CPAN::Meta::YAML->new(@_)->write_string;
}
sub Load {
- my $self = CPAN::Meta::YAML->read_string(@_);
- unless ( $self ) {
- Carp::croak("Failed to load YAML document from string");
- }
- if ( wantarray ) {
- return @$self;
- } else {
- # To match YAML.pm, return the last document
- return $self->[-1];
- }
+ my $self = CPAN::Meta::YAML->read_string(@_);
+ unless ( $self ) {
+ Carp::croak("Failed to load YAML document from string");
+ }
+ if ( wantarray ) {
+ return @$self;
+ } else {
+ # To match YAML.pm, return the last document
+ return $self->[-1];
+ }
}
BEGIN {
- *freeze = *Dump;
- *thaw = *Load;
+ *freeze = *Dump;
+ *thaw = *Load;
}
sub DumpFile {
- my $file = shift;
- CPAN::Meta::YAML->new(@_)->write($file);
+ my $file = shift;
+ CPAN::Meta::YAML->new(@_)->write($file);
}
sub LoadFile {
- my $self = CPAN::Meta::YAML->read($_[0]);
- unless ( $self ) {
- Carp::croak("Failed to load YAML document from '" . ($_[0] || '') . "'");
- }
- if ( wantarray ) {
- return @$self;
- } else {
- # Return only the last document to match YAML.pm,
- return $self->[-1];
- }
+ my $self = CPAN::Meta::YAML->read($_[0]);
+ unless ( $self ) {
+ Carp::croak("Failed to load YAML document from '" . ($_[0] || '') . "'");
+ }
+ if ( wantarray ) {
+ return @$self;
+ } else {
+ # Return only the last document to match YAML.pm,
+ return $self->[-1];
+ }
}
@@ -610,45 +619,45 @@ sub LoadFile {
# Use Scalar::Util if possible, otherwise emulate it
BEGIN {
- local $@;
- eval {
- require Scalar::Util;
- };
- my $v = eval("$Scalar::Util::VERSION") || 0;
- if ( $@ or $v < 1.18 ) {
- eval <<'END_PERL';
+ local $@;
+ eval {
+ require Scalar::Util;
+ };
+ my $v = eval("$Scalar::Util::VERSION") || 0;
+ if ( $@ or $v < 1.18 ) {
+ eval <<'END_PERL';
# Scalar::Util failed to load or too old
sub refaddr {
- my $pkg = ref($_[0]) or return undef;
- if ( !! UNIVERSAL::can($_[0], 'can') ) {
- bless $_[0], 'Scalar::Util::Fake';
- } else {
- $pkg = undef;
- }
- "$_[0]" =~ /0x(\w+)/;
- my $i = do { local $^W; hex $1 };
- bless $_[0], $pkg if defined $pkg;
- $i;
+ my $pkg = ref($_[0]) or return undef;
+ if ( !! UNIVERSAL::can($_[0], 'can') ) {
+ bless $_[0], 'Scalar::Util::Fake';
+ } else {
+ $pkg = undef;
+ }
+ "$_[0]" =~ /0x(\w+)/;
+ my $i = do { local $^W; hex $1 };
+ bless $_[0], $pkg if defined $pkg;
+ $i;
}
END_PERL
- } else {
- *refaddr = *Scalar::Util::refaddr;
- }
+ } else {
+ *refaddr = *Scalar::Util::refaddr;
+ }
}
1;
-
-
=pod
+=encoding utf-8
+
=head1 NAME
CPAN::Meta::YAML - Read and write a subset of YAML for CPAN Meta files
=head1 VERSION
-version 0.008
+version 0.010
=head1 SYNOPSIS
@@ -684,7 +693,7 @@ C<write> methods do B<not> support UTF-8 and should not be used.
This module is currently derived from L<YAML::Tiny> by Adam Kennedy. If
there are bugs in how it parses a particular META.yml file, please file
a bug report in the YAML::Tiny bugtracker:
-L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=YAML-Tiny>
+L<https://rt.cpan.org/Public/Dist/Display.html?Name=YAML-Tiny>
=head1 SEE ALSO
@@ -697,7 +706,7 @@ L<YAML::Tiny>, L<YAML>, L<YAML::XS>
=head2 Bugs / Feature Requests
Please report any bugs or feature requests through the issue tracker
-at L<http://rt.cpan.org/Public/Dist/Display.html?Name=CPAN-Meta-YAML>.
+at L<https://github.com/dagolden/CPAN-Meta-YAML/issues>.
You will be notified automatically of any progress on your issue.
=head2 Source Code
@@ -705,9 +714,9 @@ You will be notified automatically of any progress on your issue.
This is open source software. The code repository is available for
public review and contribution under the terms of the license.
-L<https://github.com/dagolden/cpan-meta-yaml>
+L<https://github.com/dagolden/CPAN-Meta-YAML>
- git clone https://github.com/dagolden/cpan-meta-yaml.git
+ git clone https://github.com/dagolden/CPAN-Meta-YAML.git
=head1 AUTHORS
@@ -732,7 +741,6 @@ the same terms as the Perl 5 programming language system itself.
=cut
-
__END__
diff --git a/cpan/CPAN-Meta-YAML/t/01_compile.t b/cpan/CPAN-Meta-YAML/t/01_compile.t
index bac1b9c8d4..d85d9aae50 100644
--- a/cpan/CPAN-Meta-YAML/t/01_compile.t
+++ b/cpan/CPAN-Meta-YAML/t/01_compile.t
@@ -1,11 +1,11 @@
-#!/usr/bin/perl
-
# Load testing for CPAN::Meta::YAML
use strict;
+use warnings;
+
BEGIN {
- $| = 1;
- $^W = 1;
+ $| = 1;
+ $^W = 1;
}
use File::Spec::Functions ':ALL';
diff --git a/cpan/CPAN-Meta-YAML/t/02_basic.t b/cpan/CPAN-Meta-YAML/t/02_basic.t
index 14d1132d28..1aa3686f5a 100644
--- a/cpan/CPAN-Meta-YAML/t/02_basic.t
+++ b/cpan/CPAN-Meta-YAML/t/02_basic.t
@@ -1,11 +1,11 @@
-#!/usr/bin/perl
-
# Testing of basic document structures
use strict;
+use warnings;
+
BEGIN {
- $| = 1;
- $^W = 1;
+ $| = 1;
+ $^W = 1;
}
use File::Spec::Functions ':ALL';
@@ -22,138 +22,138 @@ use CPAN::Meta::YAML;
# Test a completely empty document
yaml_ok(
- '',
- [ ],
- 'empty',
+ '',
+ [ ],
+ 'empty',
);
# Just a newline
### YAML.pm has a bug where it dies on a single newline
yaml_ok(
- "\n\n",
- [ ],
- 'only_newlines',
+ "\n\n",
+ [ ],
+ 'only_newlines',
);
# Just a comment
yaml_ok(
- "# comment\n",
- [ ],
- 'only_comment',
+ "# comment\n",
+ [ ],
+ 'only_comment',
);
# Empty documents
yaml_ok(
- "---\n",
- [ undef ],
- 'only_header',
- noyamlperl => 1,
+ "---\n",
+ [ undef ],
+ 'only_header',
+ noyamlperl => 1,
);
yaml_ok(
- "---\n---\n",
- [ undef, undef ],
- 'two_header',
- noyamlperl => 1,
+ "---\n---\n",
+ [ undef, undef ],
+ 'two_header',
+ noyamlperl => 1,
);
yaml_ok(
- "--- ~\n",
- [ undef ],
- 'one_undef',
- noyamlperl => 1,
+ "--- ~\n",
+ [ undef ],
+ 'one_undef',
+ noyamlperl => 1,
);
yaml_ok(
- "--- ~\n",
- [ undef ],
- 'one_undef2',
- noyamlperl => 1,
+ "--- ~\n",
+ [ undef ],
+ 'one_undef2',
+ noyamlperl => 1,
);
yaml_ok(
- "--- ~\n---\n",
- [ undef, undef ],
- 'two_undef',
- noyamlperl => 1,
+ "--- ~\n---\n",
+ [ undef, undef ],
+ 'two_undef',
+ noyamlperl => 1,
);
# Just a scalar
yaml_ok(
- "--- foo\n",
- [ 'foo' ],
- 'one_scalar',
+ "--- foo\n",
+ [ 'foo' ],
+ 'one_scalar',
);
yaml_ok(
- "--- foo\n",
- [ 'foo' ],
- 'one_scalar2',
+ "--- foo\n",
+ [ 'foo' ],
+ 'one_scalar2',
);
yaml_ok(
- "--- foo\n--- bar\n",
- [ 'foo', 'bar' ],
- 'two_scalar',
- noyamlperl => 1,
+ "--- foo\n--- bar\n",
+ [ 'foo', 'bar' ],
+ 'two_scalar',
+ noyamlperl => 1,
);
# Simple lists
yaml_ok(
- "---\n- foo\n",
- [ [ 'foo' ] ],
- 'one_list1',
+ "---\n- foo\n",
+ [ [ 'foo' ] ],
+ 'one_list1',
);
yaml_ok(
- "---\n- foo\n- bar\n",
- [ [ 'foo', 'bar' ] ],
- 'one_list2',
+ "---\n- foo\n- bar\n",
+ [ [ 'foo', 'bar' ] ],
+ 'one_list2',
);
yaml_ok(
- "---\n- ~\n- bar\n",
- [ [ undef, 'bar' ] ],
- 'one_listundef',
- noyamlperl => 1,
+ "---\n- ~\n- bar\n",
+ [ [ undef, 'bar' ] ],
+ 'one_listundef',
+ noyamlperl => 1,
);
# Simple hashs
yaml_ok(
- "---\nfoo: bar\n",
- [ { foo => 'bar' } ],
- 'one_hash1',
+ "---\nfoo: bar\n",
+ [ { foo => 'bar' } ],
+ 'one_hash1',
);
yaml_ok(
- "---\nfoo: bar\nthis: ~\n",
- [ { this => undef, foo => 'bar' } ],
- 'one_hash2',
- noyamlperl => 1,
+ "---\nfoo: bar\nthis: ~\n",
+ [ { this => undef, foo => 'bar' } ],
+ 'one_hash2',
+ noyamlperl => 1,
);
# Simple array inside a hash with an undef
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
foo:
- bar
- ~
- baz
END_YAML
- [ { foo => [ 'bar', undef, 'baz' ] } ],
- 'array_in_hash',
- noyamlperl => 1,
+ [ { foo => [ 'bar', undef, 'baz' ] } ],
+ 'array_in_hash',
+ noyamlperl => 1,
);
# Simple hash inside a hash with an undef
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
foo: ~
bar:
foo: bar
END_YAML
- [ { foo => undef, bar => { foo => 'bar' } } ],
- 'hash_in_hash',
- noyamlperl => 1,
+ [ { foo => undef, bar => { foo => 'bar' } } ],
+ 'hash_in_hash',
+ noyamlperl => 1,
);
# Mixed hash and scalars inside an array
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
-
foo: ~
@@ -164,92 +164,92 @@ yaml_ok(
foo: bar
this: that
END_YAML
- [ [
- { foo => undef, this => 'that' },
- 'foo',
- undef,
- { foo => 'bar', this => 'that' },
- ] ],
- 'hash_in_array',
- noyamlperl => 1,
+ [ [
+ { foo => undef, this => 'that' },
+ 'foo',
+ undef,
+ { foo => 'bar', this => 'that' },
+ ] ],
+ 'hash_in_array',
+ noyamlperl => 1,
);
# Simple single quote
yaml_ok(
- "---\n- 'foo'\n",
- [ [ 'foo' ] ],
- 'single_quote1',
+ "---\n- 'foo'\n",
+ [ [ 'foo' ] ],
+ 'single_quote1',
);
yaml_ok(
- "---\n- ' '\n",
- [ [ ' ' ] ],
- 'single_spaces',
+ "---\n- ' '\n",
+ [ [ ' ' ] ],
+ 'single_spaces',
);
yaml_ok(
- "---\n- ''\n",
- [ [ '' ] ],
- 'single_null',
+ "---\n- ''\n",
+ [ [ '' ] ],
+ 'single_null',
);
# Double quotes
yaml_ok(
- "--- \" \"\n",
- [ ' ' ],
- "only_spaces",
- noyamlpm => 1,
- noyamlperl => 1,
+ "--- \" \"\n",
+ [ ' ' ],
+ "only_spaces",
+ noyamlpm => 1,
+ noyamlperl => 1,
);
yaml_ok(
- "--- \" foo\"\n--- \"bar \"\n",
- [ " foo", "bar " ],
- "leading_trailing_spaces",
- noyamlpm => 1,
- noyamlperl => 1,
+ "--- \" foo\"\n--- \"bar \"\n",
+ [ " foo", "bar " ],
+ "leading_trailing_spaces",
+ noyamlpm => 1,
+ noyamlperl => 1,
);
# Implicit document start
yaml_ok(
- "foo: bar\n",
- [ { foo => 'bar' } ],
- 'implicit_hash',
+ "foo: bar\n",
+ [ { foo => 'bar' } ],
+ 'implicit_hash',
);
yaml_ok(
- "- foo\n",
- [ [ 'foo' ] ],
- 'implicit_array',
+ "- foo\n",
+ [ [ 'foo' ] ],
+ 'implicit_array',
);
# Inline nested hash
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
- ~
- foo: bar
this: that
- baz
END_YAML
- [ [ undef, { foo => 'bar', this => 'that' }, 'baz' ] ],
- 'inline_nested_hash',
- noyamlperl => 1,
+ [ [ undef, { foo => 'bar', this => 'that' }, 'baz' ] ],
+ 'inline_nested_hash',
+ noyamlperl => 1,
);
# Empty comments
yaml_ok(
- "---\n- foo\n#\n- bar\n",
- [ [ 'foo', 'bar' ] ],
- 'empty_comment_in_list',
+ "---\n- foo\n#\n- bar\n",
+ [ [ 'foo', 'bar' ] ],
+ 'empty_comment_in_list',
);
yaml_ok(
- "---\nfoo: bar\n# foo\none: two\n",
- [ { foo => 'bar', one => 'two' } ],
- 'empty_comment_in_hash',
+ "---\nfoo: bar\n# foo\none: two\n",
+ [ { foo => 'bar', one => 'two' } ],
+ 'empty_comment_in_hash',
);
# Complex keys
yaml_ok(
- "---\na b: c d\n",
- [ { 'a b' => 'c d' } ],
- 'key_with_whitespace',
+ "---\na b: c d\n",
+ [ { 'a b' => 'c d' } ],
+ 'key_with_whitespace',
);
diff --git a/cpan/CPAN-Meta-YAML/t/03_regression.t b/cpan/CPAN-Meta-YAML/t/03_regression.t
index 8fae7e4ba2..f85b2ac58d 100644
--- a/cpan/CPAN-Meta-YAML/t/03_regression.t
+++ b/cpan/CPAN-Meta-YAML/t/03_regression.t
@@ -1,20 +1,20 @@
-#!/usr/bin/perl
-
# Testing of common META.yml examples
use strict;
+use warnings;
+
BEGIN {
- $| = 1;
- $^W = 1;
+ $| = 1;
+ $^W = 1;
}
use File::Spec::Functions ':ALL';
use t::lib::Test;
use Test::More tests(37, 0, 13);
use CPAN::Meta::YAML qw{
- Load Dump
- LoadFile DumpFile
- freeze thaw
+ Load Dump
+ LoadFile DumpFile
+ freeze thaw
};
@@ -40,17 +40,17 @@ ok( defined(&thaw), 'Found exported thaw functiona' );
# Hash key legally containing a colon
yaml_ok(
- "---\nFoo::Bar: 1\n",
- [ { 'Foo::Bar' => 1 } ],
- 'module_hash_key',
+ "---\nFoo::Bar: 1\n",
+ [ { 'Foo::Bar' => 1 } ],
+ 'module_hash_key',
);
# Hash indented
yaml_ok(
- "---\n"
- . " foo: bar\n",
- [ { foo => "bar" } ],
- 'hash_indented',
+ "---\n"
+ . " foo: bar\n",
+ [ { foo => "bar" } ],
+ 'hash_indented',
);
@@ -62,25 +62,25 @@ yaml_ok(
# Declarative multi-line scalar
yaml_ok(
- "---\n"
- . " foo: >\n"
- . " bar\n"
- . " baz\n",
- [ { foo => "bar baz\n" } ],
- 'simple_multiline',
+ "---\n"
+ . " foo: >\n"
+ . " bar\n"
+ . " baz\n",
+ [ { foo => "bar baz\n" } ],
+ 'simple_multiline',
);
# Piped multi-line scalar
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
- |
foo
bar
- 1
END_YAML
- [ [ "foo\nbar\n", 1 ] ],
- 'indented',
+ [ [ "foo\nbar\n", 1 ] ],
+ 'indented',
);
# ... with a pointless hyphen
@@ -91,8 +91,8 @@ yaml_ok( <<'END_YAML',
bar
- 1
END_YAML
- [ [ "foo\nbar", 1 ] ],
- 'indented',
+ [ [ "foo\nbar", 1 ] ],
+ 'indented',
);
@@ -104,60 +104,60 @@ END_YAML
# Simple inline case (comment variant)
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
--- #YAML:1.0
foo: bar
END_YAML
- [ { foo => 'bar' } ],
- 'simple_doctype_comment',
- nosyck => 1,
+ [ { foo => 'bar' } ],
+ 'simple_doctype_comment',
+ nosyck => 1,
);
# Simple inline case (percent variant)
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
--- %YAML:1.0
foo: bar
END_YAML
- [ { foo => 'bar' } ],
- 'simple_doctype_percent',
- noyamlpm => 1,
- noxs => 1,
- noyamlperl => 1,
+ [ { foo => 'bar' } ],
+ 'simple_doctype_percent',
+ noyamlpm => 1,
+ noxs => 1,
+ noyamlperl => 1,
);
# Simple header (comment variant)
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
%YAML:1.0
---
foo: bar
END_YAML
- [ { foo => 'bar' } ],
- 'predocument_1_0',
- noyamlpm => 1,
- nosyck => 1,
- noxs => 1,
- noyamlperl => 1,
+ [ { foo => 'bar' } ],
+ 'predocument_1_0',
+ noyamlpm => 1,
+ nosyck => 1,
+ noxs => 1,
+ noyamlperl => 1,
);
# Simple inline case (comment variant)
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
%YAML 1.1
---
foo: bar
END_YAML
- [ { foo => 'bar' } ],
- 'predocument_1_1',
- noyamlpm => 1,
- nosyck => 1,
- noyamlperl => 1,
+ [ { foo => 'bar' } ],
+ 'predocument_1_1',
+ noyamlpm => 1,
+ nosyck => 1,
+ noyamlperl => 1,
);
# Multiple inline documents (comment variant)
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
--- #YAML:1.0
foo: bar
--- #YAML:1.0
@@ -165,33 +165,33 @@ foo: bar
--- #YAML:1.0
foo: bar
END_YAML
- [ { foo => 'bar' }, [ 1 ], { foo => 'bar' } ],
- 'multi_doctype_comment',
+ [ { foo => 'bar' }, [ 1 ], { foo => 'bar' } ],
+ 'multi_doctype_comment',
);
# Simple pre-document case (comment variant)
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
%YAML 1.1
---
foo: bar
END_YAML
- [ { foo => 'bar' } ],
- 'predocument_percent',
- noyamlpm => 1,
- nosyck => 1,
- noyamlperl => 1,
+ [ { foo => 'bar' } ],
+ 'predocument_percent',
+ noyamlpm => 1,
+ nosyck => 1,
+ noyamlperl => 1,
);
# Simple pre-document case (comment variant)
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
#YAML 1.1
---
foo: bar
END_YAML
- [ { foo => 'bar' } ],
- 'predocument_comment',
+ [ { foo => 'bar' } ],
+ 'predocument_comment',
);
@@ -202,12 +202,12 @@ END_YAML
# Hitchhiker Scalar
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
--- 42
END_YAML
- [ 42 ],
- 'hitchhiker scalar',
- serializes => 1,
+ [ 42 ],
+ 'hitchhiker scalar',
+ serializes => 1,
);
@@ -218,45 +218,45 @@ END_YAML
# Null HASH/ARRAY
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
- foo
- {}
- bar
END_YAML
- [ [ 'foo', {}, 'bar' ] ],
- 'null hash in array',
+ [ [ 'foo', {}, 'bar' ] ],
+ 'null hash in array',
);
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
- foo
- []
- bar
END_YAML
- [ [ 'foo', [], 'bar' ] ],
- 'null array in array',
+ [ [ 'foo', [], 'bar' ] ],
+ 'null array in array',
);
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
foo: {}
bar: 1
END_YAML
- [ { foo => {}, bar => 1 } ],
- 'null hash in hash',
+ [ { foo => {}, bar => 1 } ],
+ 'null hash in hash',
);
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
foo: []
bar: 1
END_YAML
- [ { foo => [], bar => 1 } ],
- 'null array in hash',
+ [ { foo => [], bar => 1 } ],
+ 'null array in hash',
);
@@ -266,22 +266,22 @@ END_YAML
# Trailing Whitespace
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
-abstract: Generate fractal curves
-foo: ~
+abstract: Generate fractal curves
+foo: ~
arr:
- - foo
+ - foo
- ~
- - 'bar'
+ - 'bar'
END_YAML
- [ {
- abstract => 'Generate fractal curves',
- foo => undef,
- arr => [ 'foo', undef, 'bar' ],
- } ],
- 'trailing whitespace',
- noyamlperl => 1,
+ [ {
+ abstract => 'Generate fractal curves',
+ foo => undef,
+ arr => [ 'foo', undef, 'bar' ],
+ } ],
+ 'trailing whitespace',
+ noyamlperl => 1,
);
@@ -292,13 +292,13 @@ END_YAML
# Quote vs Hash
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
author:
- 'mst: Matt S. Trout <mst@shadowcatsystems.co.uk>'
END_YAML
- [ { author => [ 'mst: Matt S. Trout <mst@shadowcatsystems.co.uk>' ] } ],
- 'hash-like quote',
+ [ { author => [ 'mst: Matt S. Trout <mst@shadowcatsystems.co.uk>' ] } ],
+ 'hash-like quote',
);
@@ -309,33 +309,33 @@ END_YAML
# Quote and Escaping Idiosyncracies
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
name1: 'O''Reilly'
name2: 'O''Reilly O''Tool'
name3: 'Double '''' Quote'
END_YAML
- [ {
- name1 => "O'Reilly",
- name2 => "O'Reilly O'Tool",
- name3 => "Double '' Quote",
- } ],
- 'single quote subtleties',
+ [ {
+ name1 => "O'Reilly",
+ name2 => "O'Reilly O'Tool",
+ name3 => "Double '' Quote",
+ } ],
+ 'single quote subtleties',
);
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
slash1: '\\'
slash2: '\\foo'
slash3: '\\foo\\\\'
END_YAML
- [ {
- slash1 => "\\\\",
- slash2 => "\\\\foo",
- slash3 => "\\\\foo\\\\\\\\",
- } ],
- 'single quote subtleties',
+ [ {
+ slash1 => "\\\\",
+ slash2 => "\\\\foo",
+ slash3 => "\\\\foo\\\\\\\\",
+ } ],
+ 'single quote subtleties',
);
@@ -346,29 +346,29 @@ END_YAML
# Empty Values and Premature EOF
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
foo: 0
requires:
build_requires:
END_YAML
- [ { foo => 0, requires => undef, build_requires => undef } ],
- 'empty hash keys',
- noyamlpm => 1,
- noyamlperl => 1,
+ [ { foo => 0, requires => undef, build_requires => undef } ],
+ 'empty hash keys',
+ noyamlpm => 1,
+ noyamlperl => 1,
);
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
- foo
-
-
END_YAML
- [ [ 'foo', undef, undef ] ],
- 'empty array keys',
- noyamlpm => 1,
- noyamlperl => 1,
+ [ [ 'foo', undef, undef ] ],
+ 'empty array keys',
+ noyamlpm => 1,
+ noyamlperl => 1,
);
@@ -379,14 +379,14 @@ END_YAML
# Comment on the Document Line
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
--- # Comment
foo: bar
END_YAML
- [ { foo => 'bar' } ],
- 'comment header',
- noyamlpm => 1,
- noyamlperl => 1,
+ [ { foo => 'bar' } ],
+ 'comment header',
+ noyamlpm => 1,
+ noyamlperl => 1,
);
@@ -398,11 +398,11 @@ END_YAML
# Newlines and tabs
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
foo: "foo\\\n\tbar"
END_YAML
- [ { foo => "foo\\\n\tbar" } ],
- 'special characters',
+ [ { foo => "foo\\\n\tbar" } ],
+ 'special characters',
);
@@ -413,22 +413,22 @@ END_YAML
# Circular Reference Protection
SCOPE: {
- my $foo = { a => 'b' };
- my $bar = [ $foo, 2 ];
- $foo->{c} = $bar;
- my $circ = CPAN::Meta::YAML->new( [ $foo, $bar ] );
- isa_ok( $circ, 'CPAN::Meta::YAML' );
-
- # When we try to serialize, it should NOT infinite loop
- my $string = undef;
- $string = eval { $circ->write_string; };
- is( $string, undef, '->write_string does not return a value' );
- ok( $@, 'Error string is defined' );
- ok(
- $@ =~ /does not support circular references/,
- 'Got the expected error message',
- );
-}
+ my $foo = { a => 'b' };
+ my $bar = [ $foo, 2 ];
+ $foo->{c} = $bar;
+ my $circ = CPAN::Meta::YAML->new( [ $foo, $bar ] );
+ isa_ok( $circ, 'CPAN::Meta::YAML' );
+
+ # When we try to serialize, it should NOT infinite loop
+ my $string = undef;
+ $string = eval { $circ->write_string; };
+ is( $string, undef, '->write_string does not return a value' );
+ ok( $@, 'Error string is defined' );
+ ok(
+ $@ =~ /does not support circular references/,
+ 'Got the expected error message',
+ );
+}
@@ -438,7 +438,7 @@ SCOPE: {
# Confirm we can read the synopsis
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
rootproperty: blah
section:
@@ -447,17 +447,17 @@ section:
Foo: Bar
empty: ~
END_YAML
- [ {
- rootproperty => 'blah',
- section => {
- one => 'two',
- three => 'four',
- Foo => 'Bar',
- empty => undef,
- },
- } ],
- 'synopsis',
- noyamlperl => 1,
+ [ {
+ rootproperty => 'blah',
+ section => {
+ one => 'two',
+ three => 'four',
+ Foo => 'Bar',
+ empty => undef,
+ },
+ } ],
+ 'synopsis',
+ noyamlperl => 1,
);
@@ -481,13 +481,13 @@ yaml_ok(
# Empty Quote Line
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
- foo
#
- bar
END_YAML
- [ [ "foo", "bar" ] ],
+ [ [ "foo", "bar" ] ],
);
@@ -498,7 +498,7 @@ END_YAML
# Indentation after empty hash value
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
Test:
optmods:
@@ -514,28 +514,28 @@ _meta:
name: 'test profile'
note: 'note this test profile'
END_YAML
- [ {
- Test => {
- optmods => {
- Bad => 0,
- Foo => 1,
- Long => 0,
- },
- version => 5,
- },
- Test_IncludeA => {
- optmods => undef,
- },
- Test_IncludeB => {
- optmods => undef,
- },
- _meta => {
- name => 'test profile',
- note => 'note this test profile',
- },
- } ],
- 'Indentation after empty hash value',
- noyamlperl => 1,
+ [ {
+ Test => {
+ optmods => {
+ Bad => 0,
+ Foo => 1,
+ Long => 0,
+ },
+ version => 5,
+ },
+ Test_IncludeA => {
+ optmods => undef,
+ },
+ Test_IncludeB => {
+ optmods => undef,
+ },
+ _meta => {
+ name => 'test profile',
+ note => 'note this test profile',
+ },
+ } ],
+ 'Indentation after empty hash value',
+ noyamlperl => 1,
);
@@ -546,11 +546,11 @@ END_YAML
# Spaces in the Key
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
the key: the value
END_YAML
- [ { 'the key' => 'the value' } ],
+ [ { 'the key' => 'the value' } ],
);
@@ -563,13 +563,13 @@ END_YAML
# Tests a particular pathological case
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
- value
- '><'
END_YAML
- [ [ 'value', '><' ] ],
- 'Pathological >< case',
+ [ [ 'value', '><' ] ],
+ 'Pathological >< case',
);
@@ -580,11 +580,11 @@ END_YAML
# Special Characters
#yaml_ok(
-# <<'END_YAML',
+# <<'END_YAML',
#---
#- "Ingy d\xC3\xB6t Net"
#END_YAML
-# [ [ "Ingy d\xC3\xB6t Net" ] ],
+# [ [ "Ingy d\xC3\xB6t Net" ] ],
#);
@@ -596,16 +596,16 @@ END_YAML
# Non-Indenting Sub-List
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
foo:
- list
bar: value
END_YAML
- [ { foo => [ 'list' ], bar => 'value' } ],
- 'Non-indenting sub-list',
- noyamlpm => 1,
- noyamlperl => 1,
+ [ { foo => [ 'list' ], bar => 'value' } ],
+ 'Non-indenting sub-list',
+ noyamlpm => 1,
+ noyamlperl => 1,
);
@@ -618,23 +618,23 @@ END_YAML
# RT #42119: write of two single quotes
yaml_ok(
- "--- \"A'B'C\"\n",
- [ "A'B'C" ],
- 'Multiple escaping of quote ok',
+ "--- \"A'B'C\"\n",
+ [ "A'B'C" ],
+ 'Multiple escaping of quote ok',
);
# Escapes without whitespace
yaml_ok(
- "--- A\\B\\C\n",
- [ "A\\B\\C" ],
- 'Multiple escaping of escape ok',
+ "--- A\\B\\C\n",
+ [ "A\\B\\C" ],
+ 'Multiple escaping of escape ok',
);
# Escapes with whitespace
yaml_ok(
- "--- 'A\\B \\C'\n",
- [ "A\\B \\C" ],
- 'Multiple escaping of escape with whitespace ok',
+ "--- 'A\\B \\C'\n",
+ [ "A\\B \\C" ],
+ 'Multiple escaping of escape with whitespace ok',
);
@@ -645,14 +645,14 @@ yaml_ok(
# Check illegal characters that are in legal places
yaml_ok(
- "--- 'Wow!'\n",
- [ "Wow!" ],
- 'Bang in a quote',
+ "--- 'Wow!'\n",
+ [ "Wow!" ],
+ 'Bang in a quote',
);
yaml_ok(
- "--- 'This&that'\n",
- [ "This&that" ],
- 'Ampersand in a quote',
+ "--- 'This&that'\n",
+ [ "This&that" ],
+ 'Ampersand in a quote',
);
@@ -663,16 +663,16 @@ yaml_ok(
# Check for unescaped boolean keywords
is_deeply(
- CPAN::Meta::YAML->new( 'True' )->write_string,
- "--- 'True'\n",
- 'Idiomatic trivial boolean string is escaped',
+ CPAN::Meta::YAML->new( 'True' )->write_string,
+ "--- 'True'\n",
+ 'Idiomatic trivial boolean string is escaped',
);
is_deeply( CPAN::Meta::YAML->new( [ qw{
- null Null NULL
- y Y yes Yes YES n N no No NO
- true True TRUE false False FALSE
- on On ON off Off OFF
+ null Null NULL
+ y Y yes Yes YES n N no No NO
+ true True TRUE false False FALSE
+ on On ON off Off OFF
} ] )->write_string, <<'END_YAML' );
---
- 'null'
@@ -710,7 +710,7 @@ END_YAML
# Always quote for scalars ending with :
is_deeply(
- CPAN::Meta::YAML->new( [ 'A:' ] )->write_string,
- "---\n- 'A:'\n",
- 'Simple scalar ending in a colon is correctly quoted',
+ CPAN::Meta::YAML->new( [ 'A:' ] )->write_string,
+ "---\n- 'A:'\n",
+ 'Simple scalar ending in a colon is correctly quoted',
);
diff --git a/cpan/CPAN-Meta-YAML/t/05_export.t b/cpan/CPAN-Meta-YAML/t/05_export.t
index cf63861c6c..edb43c80e8 100644
--- a/cpan/CPAN-Meta-YAML/t/05_export.t
+++ b/cpan/CPAN-Meta-YAML/t/05_export.t
@@ -1,11 +1,11 @@
-#!/usr/bin/perl
-
# Testing of basic document structures
use strict;
+use warnings;
+
BEGIN {
- $| = 1;
- $^W = 1;
+ $| = 1;
+ $^W = 1;
}
use Test::More tests => 6;
diff --git a/cpan/CPAN-Meta-YAML/t/11_meta_yml.t b/cpan/CPAN-Meta-YAML/t/11_meta_yml.t
index c8953bb0aa..e2604e299e 100644
--- a/cpan/CPAN-Meta-YAML/t/11_meta_yml.t
+++ b/cpan/CPAN-Meta-YAML/t/11_meta_yml.t
@@ -1,11 +1,11 @@
-#!/usr/bin/perl
-
# Testing of common META.yml examples
use strict;
+use warnings;
+
BEGIN {
- $| = 1;
- $^W = 1;
+ $| = 1;
+ $^W = 1;
}
use File::Spec::Functions ':ALL';
@@ -21,7 +21,7 @@ use CPAN::Meta::YAML;
# Testing CPAN::Meta::YAML's own META.yml file
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
abstract: Read/Write YAML files with as little code as possible
author: 'Adam Kennedy <cpan@ali.as>'
build_requires:
@@ -39,26 +39,26 @@ requires:
perl: 5.005
version: 0.03
END_YAML
- [ {
- abstract => 'Read/Write YAML files with as little code as possible',
- author => 'Adam Kennedy <cpan@ali.as>',
- build_requires => {
- 'File::Spec' => '0.80',
- 'Test::More' => '0.47',
- },
- distribution_type => 'module',
- generated_by => 'Module::Install version 0.63',
- license => 'perl',
- name => 'YAML-Tiny',
- no_index => {
- directory => [ qw{inc t} ],
- },
- requires => {
- perl => '5.005',
- },
- version => '0.03',
- } ],
- 'CPAN::Meta::YAML',
+ [ {
+ abstract => 'Read/Write YAML files with as little code as possible',
+ author => 'Adam Kennedy <cpan@ali.as>',
+ build_requires => {
+ 'File::Spec' => '0.80',
+ 'Test::More' => '0.47',
+ },
+ distribution_type => 'module',
+ generated_by => 'Module::Install version 0.63',
+ license => 'perl',
+ name => 'YAML-Tiny',
+ no_index => {
+ directory => [ qw{inc t} ],
+ },
+ requires => {
+ perl => '5.005',
+ },
+ version => '0.03',
+ } ],
+ 'CPAN::Meta::YAML',
);
@@ -70,7 +70,7 @@ END_YAML
# Testing a META.yml from a commercial project that crashed
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
# http://module-build.sourceforge.net/META-spec.html
#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
name: ITS-SIN-FIDS-Content-XML
@@ -84,19 +84,19 @@ requires:
distribution_type: module
generated_by: ExtUtils::MakeMaker version 6.30
END_YAML
- [ {
- name => 'ITS-SIN-FIDS-Content-XML',
- version => "0.01", # this kludge is to prevent floating point comparison errors
- version_from => 'lib/ITS/SIN/FIDS/Content/XML.pm',
- installdirs => 'site',
- requires => {
- 'Test::More' => 0.45,
- 'XML::Simple' => 2,
- },
- distribution_type => 'module',
- generated_by => 'ExtUtils::MakeMaker version 6.30',
- } ],
- 'CPAN::Meta::YAML',
+ [ {
+ name => 'ITS-SIN-FIDS-Content-XML',
+ version => "0.01", # this kludge is to prevent floating point comparison errors
+ version_from => 'lib/ITS/SIN/FIDS/Content/XML.pm',
+ installdirs => 'site',
+ requires => {
+ 'Test::More' => 0.45,
+ 'XML::Simple' => 2,
+ },
+ distribution_type => 'module',
+ generated_by => 'ExtUtils::MakeMaker version 6.30',
+ } ],
+ 'CPAN::Meta::YAML',
);
@@ -108,7 +108,7 @@ END_YAML
# Testing various failing META.yml files from CPAN
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
abstract: Mii in Nintendo Wii data parser and builder
author: Toru Yamaguchi <zigorou@cpan.org>
@@ -134,37 +134,37 @@ requires:
XML::LibXML: 1.62
version: 0.02
END_YAML
- [ {
- abstract => 'Mii in Nintendo Wii data parser and builder',
- author => 'Toru Yamaguchi <zigorou@cpan.org>',
- distribution_type => 'module',
- generated_by => 'Module::Install version 0.65',
- license => 'perl',
- 'meta-spec' => {
- url => 'http://module-build.sourceforge.net/META-spec-v1.3.html',
- version => '1.3',
- },
- name => 'Games-Nintendo-Wii-Mii',
- no_index => {
- directory => [ qw{ inc t } ],
- },
- requires => {
- 'Carp' => '1.03',
- 'Class::Accessor::Fast' => '0.3',
- 'File::Slurp' => '9999.12',
- 'IO::File' => '1.1',
- 'Readonly' => '0',
- 'Tie::IxHash' => '1.21',
- 'URI' => '1.35',
- 'XML::LibXML' => '1.62',
- },
- version => '0.02',
- } ],
- 'Games-Nintendo-Wii-Mii',
+ [ {
+ abstract => 'Mii in Nintendo Wii data parser and builder',
+ author => 'Toru Yamaguchi <zigorou@cpan.org>',
+ distribution_type => 'module',
+ generated_by => 'Module::Install version 0.65',
+ license => 'perl',
+ 'meta-spec' => {
+ url => 'http://module-build.sourceforge.net/META-spec-v1.3.html',
+ version => '1.3',
+ },
+ name => 'Games-Nintendo-Wii-Mii',
+ no_index => {
+ directory => [ qw{ inc t } ],
+ },
+ requires => {
+ 'Carp' => '1.03',
+ 'Class::Accessor::Fast' => '0.3',
+ 'File::Slurp' => '9999.12',
+ 'IO::File' => '1.1',
+ 'Readonly' => '0',
+ 'Tie::IxHash' => '1.21',
+ 'URI' => '1.35',
+ 'XML::LibXML' => '1.62',
+ },
+ version => '0.02',
+ } ],
+ 'Games-Nintendo-Wii-Mii',
);
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
# http://module-build.sourceforge.net/META-spec.html
#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
name: Acme-Time-Baby
@@ -177,19 +177,19 @@ requires:
distribution_type: module
generated_by: ExtUtils::MakeMaker version 6.17
END_YAML
- [ {
- name => 'Acme-Time-Baby',
- version => '2.106',
- version_from => 'Baby.pm',
- installdirs => 'site',
- requires => {
- warnings => undef,
- },
- distribution_type => 'module',
- generated_by => 'ExtUtils::MakeMaker version 6.17',
- } ],
- 'Acme-Time-Baby',
- noyamlperl => 1,
+ [ {
+ name => 'Acme-Time-Baby',
+ version => '2.106',
+ version_from => 'Baby.pm',
+ installdirs => 'site',
+ requires => {
+ warnings => undef,
+ },
+ distribution_type => 'module',
+ generated_by => 'ExtUtils::MakeMaker version 6.17',
+ } ],
+ 'Acme-Time-Baby',
+ noyamlperl => 1,
);
@@ -200,7 +200,7 @@ END_YAML
# File with a YAML header
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
--- #YAML:1.0
name: Data-Swap
version: 0.05
@@ -210,18 +210,18 @@ requires:
perl: 5.6.0
dynamic_config: 0
END_YAML
- [ {
- name => 'Data-Swap',
- version => '0.05',
- license => 'perl',
- distribution_type => 'module',
- requires => {
- perl => '5.6.0',
- },
- dynamic_config => '0',
- } ],
- 'Data-Swap',
- nosyck => 1,
+ [ {
+ name => 'Data-Swap',
+ version => '0.05',
+ license => 'perl',
+ distribution_type => 'module',
+ requires => {
+ perl => '5.6.0',
+ },
+ dynamic_config => '0',
+ } ],
+ 'Data-Swap',
+ nosyck => 1,
);
@@ -232,165 +232,165 @@ END_YAML
# Various files that fail for unknown reasons
SCOPE: {
- my $content = load_ok(
- 'Template-Provider-Unicode-Japanese.yml',
- catfile( test_data_directory(), 'Template-Provider-Unicode-Japanese.yml' ),
- 100
- );
- yaml_ok(
- $content,
- [ {
- abstract => 'Decode all templates by Unicode::Japanese',
- author => 'Hironori Yoshida C<< <yoshida@cpan.org> >>',
- distribution_type => 'module',
- generated_by => 'Module::Install version 0.65',
- license => 'perl',
- 'meta-spec' => {
- url => 'http://module-build.sourceforge.net/META-spec-v1.3.html',
- version => '1.3',
- },
- name => 'Template-Provider-Unicode-Japanese',
- no_index => {
- directory => [ qw{ inc t } ],
- },
- requires => {
- 'Template::Config' => 0,
- 'Unicode::Japanese' => 0,
- perl => '5.6.0',
- version => '0',
- },
- version => '1.2.1',
- } ],
- 'Template-Provider-Unicode-Japanese',
- noyamlperl => 1,
- );
+ my $content = load_ok(
+ 'Template-Provider-Unicode-Japanese.yml',
+ catfile( test_data_directory(), 'Template-Provider-Unicode-Japanese.yml' ),
+ 100
+ );
+ yaml_ok(
+ $content,
+ [ {
+ abstract => 'Decode all templates by Unicode::Japanese',
+ author => 'Hironori Yoshida C<< <yoshida@cpan.org> >>',
+ distribution_type => 'module',
+ generated_by => 'Module::Install version 0.65',
+ license => 'perl',
+ 'meta-spec' => {
+ url => 'http://module-build.sourceforge.net/META-spec-v1.3.html',
+ version => '1.3',
+ },
+ name => 'Template-Provider-Unicode-Japanese',
+ no_index => {
+ directory => [ qw{ inc t } ],
+ },
+ requires => {
+ 'Template::Config' => 0,
+ 'Unicode::Japanese' => 0,
+ perl => '5.6.0',
+ version => '0',
+ },
+ version => '1.2.1',
+ } ],
+ 'Template-Provider-Unicode-Japanese',
+ noyamlperl => 1,
+ );
}
SCOPE: {
- my $content = load_ok(
- 'HTML-WebDAO.yml',
- catfile( test_data_directory(), 'HTML-WebDAO.yml' ),
- 100
- );
- yaml_ok(
- $content,
- [ {
- abstract => 'Perl extension for create complex web application',
- author => [
- 'Zahatski Aliaksandr, E<lt>zagap@users.sourceforge.netE<gt>',
- ],
- license => 'perl',
- name => 'HTML-WebDAO',
- version => '0.04',
- } ],
- 'HTML-WebDAO',
- nosyck => 1,
- );
+ my $content = load_ok(
+ 'HTML-WebDAO.yml',
+ catfile( test_data_directory(), 'HTML-WebDAO.yml' ),
+ 100
+ );
+ yaml_ok(
+ $content,
+ [ {
+ abstract => 'Perl extension for create complex web application',
+ author => [
+ 'Zahatski Aliaksandr, E<lt>zagap@users.sourceforge.netE<gt>',
+ ],
+ license => 'perl',
+ name => 'HTML-WebDAO',
+ version => '0.04',
+ } ],
+ 'HTML-WebDAO',
+ nosyck => 1,
+ );
}
SCOPE: {
- my $content = load_ok(
- 'Spreadsheet-Read.yml',
- catfile( test_data_directory(), 'Spreadsheet-Read.yml' ),
- 100
- );
- yaml_ok(
- $content,
- [ {
- 'resources' => {
- 'license' => 'http://dev.perl.org/licenses/'
- },
- 'meta-spec' => {
- 'version' => '1.4',
- 'url' => 'http://module-build.sourceforge.net/META-spec-v1.4.html'
- },
- 'distribution_type' => 'module',
- 'generated_by' => 'Author',
- 'version' => 'VERSION',
- 'name' => 'Read',
- 'author' => [
- 'H.Merijn Brand <h.m.brand@xs4all.nl>'
- ],
- 'license' => 'perl',
- 'build_requires' => {
- 'Test::More' => '0',
- 'Test::Harness' => '0',
- 'perl' => '5.006'
- },
- 'provides' => {
- 'Spreadsheet::Read' => {
- 'version' => 'VERSION',
- 'file' => 'Read.pm'
- }
- },
- 'optional_features' => [
- {
- 'opt_csv' => {
- 'requires' => {
- 'Text::CSV_XS' => '0.23'
- },
- 'recommends' => {
- 'Text::CSV_PP' => '1.10',
- 'Text::CSV_XS' => '0.58',
- 'Text::CSV' => '1.10'
- },
- 'description' => 'Provides parsing of CSV streams'
- }
- },
- {
- 'opt_excel' => {
- 'requires' => {
- 'Spreadsheet::ParseExcel' => '0.26',
- 'Spreadsheet::ParseExcel::FmtDefault' => '0'
- },
- 'recommends' => {
- 'Spreadsheet::ParseExcel' => '0.42'
- },
- 'description' => 'Provides parsing of Microsoft Excel files'
- }
- },
- {
- 'opt_excelx' => {
- 'requires' => {
- 'Spreadsheet::XLSX' => '0.07'
- },
- 'description' => 'Provides parsing of Microsoft Excel 2007 files'
- }
- },
- {
- 'opt_oo' => {
- 'requires' => {
- 'Spreadsheet::ReadSXC' => '0.2'
- },
- 'description' => 'Provides parsing of OpenOffice spreadsheets'
- }
- },
- {
- 'opt_tools' => {
- 'recommends' => {
- 'Tk::TableMatrix::Spreadsheet' => '0',
- 'Tk::NoteBook' => '0',
- 'Tk' => '0'
- },
- 'description' => 'Spreadsheet tools'
- }
- }
- ],
- 'requires' => {
- 'perl' => '5.006',
- 'Data::Dumper' => '0',
- 'Exporter' => '0',
- 'Carp' => '0'
- },
- 'recommends' => {
- 'perl' => '5.008005',
- 'IO::Scalar' => '0',
- 'File::Temp' => '0.14'
- },
- 'abstract' => 'Meta-Wrapper for reading spreadsheet data'
- } ],
- 'Spreadsheet-Read',
- noyamlpm => 1,
- noyamlperl => 1,
- );
+ my $content = load_ok(
+ 'Spreadsheet-Read.yml',
+ catfile( test_data_directory(), 'Spreadsheet-Read.yml' ),
+ 100
+ );
+ yaml_ok(
+ $content,
+ [ {
+ 'resources' => {
+ 'license' => 'http://dev.perl.org/licenses/'
+ },
+ 'meta-spec' => {
+ 'version' => '1.4',
+ 'url' => 'http://module-build.sourceforge.net/META-spec-v1.4.html'
+ },
+ 'distribution_type' => 'module',
+ 'generated_by' => 'Author',
+ 'version' => 'VERSION',
+ 'name' => 'Read',
+ 'author' => [
+ 'H.Merijn Brand <h.m.brand@xs4all.nl>'
+ ],
+ 'license' => 'perl',
+ 'build_requires' => {
+ 'Test::More' => '0',
+ 'Test::Harness' => '0',
+ 'perl' => '5.006'
+ },
+ 'provides' => {
+ 'Spreadsheet::Read' => {
+ 'version' => 'VERSION',
+ 'file' => 'Read.pm'
+ }
+ },
+ 'optional_features' => [
+ {
+ 'opt_csv' => {
+ 'requires' => {
+ 'Text::CSV_XS' => '0.23'
+ },
+ 'recommends' => {
+ 'Text::CSV_PP' => '1.10',
+ 'Text::CSV_XS' => '0.58',
+ 'Text::CSV' => '1.10'
+ },
+ 'description' => 'Provides parsing of CSV streams'
+ }
+ },
+ {
+ 'opt_excel' => {
+ 'requires' => {
+ 'Spreadsheet::ParseExcel' => '0.26',
+ 'Spreadsheet::ParseExcel::FmtDefault' => '0'
+ },
+ 'recommends' => {
+ 'Spreadsheet::ParseExcel' => '0.42'
+ },
+ 'description' => 'Provides parsing of Microsoft Excel files'
+ }
+ },
+ {
+ 'opt_excelx' => {
+ 'requires' => {
+ 'Spreadsheet::XLSX' => '0.07'
+ },
+ 'description' => 'Provides parsing of Microsoft Excel 2007 files'
+ }
+ },
+ {
+ 'opt_oo' => {
+ 'requires' => {
+ 'Spreadsheet::ReadSXC' => '0.2'
+ },
+ 'description' => 'Provides parsing of OpenOffice spreadsheets'
+ }
+ },
+ {
+ 'opt_tools' => {
+ 'recommends' => {
+ 'Tk::TableMatrix::Spreadsheet' => '0',
+ 'Tk::NoteBook' => '0',
+ 'Tk' => '0'
+ },
+ 'description' => 'Spreadsheet tools'
+ }
+ }
+ ],
+ 'requires' => {
+ 'perl' => '5.006',
+ 'Data::Dumper' => '0',
+ 'Exporter' => '0',
+ 'Carp' => '0'
+ },
+ 'recommends' => {
+ 'perl' => '5.008005',
+ 'IO::Scalar' => '0',
+ 'File::Temp' => '0.14'
+ },
+ 'abstract' => 'Meta-Wrapper for reading spreadsheet data'
+ } ],
+ 'Spreadsheet-Read',
+ noyamlpm => 1,
+ noyamlperl => 1,
+ );
}
diff --git a/cpan/CPAN-Meta-YAML/t/12_plagger.t b/cpan/CPAN-Meta-YAML/t/12_plagger.t
index e2061be9fb..86abc3b2c6 100644
--- a/cpan/CPAN-Meta-YAML/t/12_plagger.t
+++ b/cpan/CPAN-Meta-YAML/t/12_plagger.t
@@ -1,11 +1,11 @@
-#!/usr/bin/perl
-
# Testing Plagger config samples from Miyagawa-san's YAPC::NA 2006 talk
use strict;
+use warnings;
+
BEGIN {
- $| = 1;
- $^W = 1;
+ $| = 1;
+ $^W = 1;
}
use File::Spec::Functions ':ALL';
@@ -21,7 +21,7 @@ use CPAN::Meta::YAML;
# Example Plagger Configuration 1
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
plugins:
- module: Subscription::Bloglines
config:
@@ -37,28 +37,28 @@ plugins:
via: smtp
host: smtp.example.com
END_YAML
- [ { plugins => [
- {
- module => 'Subscription::Bloglines',
- config => {
- username => 'you@example.pl',
- password => 'foobar',
- mark_read => 1,
- },
- },
- {
- module => 'Publish::Gmail',
- config => {
- mailto => 'example@gmail.com',
- mailfrom => 'miyagawa@example.com',
- mailroute => {
- via => 'smtp',
- host => 'smtp.example.com',
- },
- },
- },
- ] } ],
- 'Plagger',
+ [ { plugins => [
+ {
+ module => 'Subscription::Bloglines',
+ config => {
+ username => 'you@example.pl',
+ password => 'foobar',
+ mark_read => 1,
+ },
+ },
+ {
+ module => 'Publish::Gmail',
+ config => {
+ mailto => 'example@gmail.com',
+ mailfrom => 'miyagawa@example.com',
+ mailroute => {
+ via => 'smtp',
+ host => 'smtp.example.com',
+ },
+ },
+ },
+ ] } ],
+ 'Plagger',
);
@@ -69,7 +69,7 @@ END_YAML
# Example Plagger Configuration 2
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
plugins:
- module: Subscription::Config
config:
@@ -95,33 +95,33 @@ plugins:
- '#plagger-ja'
- '#plagger'
-
+
END_YAML
- [ { plugins => [ {
- module => 'Subscription::Config',
- config => {
- feed => [ 'http://plagger.org/.../rss' ],
- },
- }, {
- module => 'Filter::Rule',
- rule => {
- module => 'Fresh',
- mtime => {
- path => '/tmp/rssbot.time',
- autoupdate => 1,
- },
- },
- }, {
- module => 'Notify::IRC',
- config => {
- daemon_port => 9999,
- nickname => 'plaggerbot',
- server_host => 'chat.freenode.net',
- server_channels => [
- '#plagger-ja',
- '#plagger',
- ],
- },
- } ] } ],
- 'plagger2',
-);
+ [ { plugins => [ {
+ module => 'Subscription::Config',
+ config => {
+ feed => [ 'http://plagger.org/.../rss' ],
+ },
+ }, {
+ module => 'Filter::Rule',
+ rule => {
+ module => 'Fresh',
+ mtime => {
+ path => '/tmp/rssbot.time',
+ autoupdate => 1,
+ },
+ },
+ }, {
+ module => 'Notify::IRC',
+ config => {
+ daemon_port => 9999,
+ nickname => 'plaggerbot',
+ server_host => 'chat.freenode.net',
+ server_channels => [
+ '#plagger-ja',
+ '#plagger',
+ ],
+ },
+ } ] } ],
+ 'plagger2',
+);
diff --git a/cpan/CPAN-Meta-YAML/t/13_perl_smith.t b/cpan/CPAN-Meta-YAML/t/13_perl_smith.t
index 6e4a70d15f..b6e4977337 100644
--- a/cpan/CPAN-Meta-YAML/t/13_perl_smith.t
+++ b/cpan/CPAN-Meta-YAML/t/13_perl_smith.t
@@ -1,11 +1,11 @@
-#!/usr/bin/perl
-
# Testing of common META.yml examples
use strict;
+use warnings;
+
BEGIN {
- $| = 1;
- $^W = 1;
+ $| = 1;
+ $^W = 1;
}
use File::Spec::Functions ':ALL';
@@ -24,126 +24,126 @@ my $vanilla_file = catfile( test_data_directory(), 'vanilla.yml' );
my $vanilla = load_ok( 'yanilla.yml', $vanilla_file, 1000 );
yaml_ok(
- $vanilla,
- [ {
- package_name => 'VanillaPerl',
- package_version => 5,
- download_dir => 'c:\temp\vp_sources',
- build_dir => 'c:\temp\vp_build',
- image_dir => 'c:\vanilla-perl',
- binary => [
- {
- name => 'dmake',
- url => 'http://search.cpan.org/CPAN/authors/id/S/SH/SHAY/dmake-4.5-20060619-SHAY.zip',
- license => {
- 'dmake/COPYING' => 'dmake/COPYING',
- 'dmake/readme/license.txt' => 'dmake/license.txt',
- },
- install_to => {
- 'dmake/dmake.exe' => 'dmake/bin/dmake.exe',
- 'dmake/startup' => 'dmake/bin/startup',
- },
- },
- {
- name => 'gcc-core',
- url => 'http://umn.dl.sourceforge.net/mingw/gcc-core-3.4.5-20060117-1.tar.gz',
- license => {
- 'COPYING' => 'gcc/COPYING',
- 'COPYING.lib' => 'gcc/COPYING.lib',
- },
- install_to => 'mingw',
- },
- {
- name => 'gcc-g++',
- url => 'http://umn.dl.sourceforge.net/mingw/gcc-g++-3.4.5-20060117-1.tar.gz',
- license => undef,
- install_to => 'mingw',
- },
- {
- name => 'binutils',
- url => 'http://umn.dl.sourceforge.net/mingw/binutils-2.16.91-20060119-1.tar.gz',
- license => {
- 'Copying' => 'binutils/Copying',
- 'Copying.lib' => 'binutils/Copying.lib',
- },
- install_to => 'mingw',
- },
- {
- name => 'mingw-runtime',
- url => 'http://umn.dl.sourceforge.net/mingw/mingw-runtime-3.10.tar.gz',
- license => {
- 'doc/mingw-runtime/Contributors' => 'mingw/Contributors',
- 'doc/mingw-runtime/Disclaimer' => 'mingw/Disclaimer',
- },
- install_to => 'mingw',
- },
- {
- name => 'w32api',
- url => 'http://umn.dl.sourceforge.net/mingw/w32api-3.6.tar.gz',
- license => undef,
- install_to => 'mingw',
- extra => {
- 'extra\README.w32api' => 'licenses\win32api\README.w32api',
- },
- }
- ],
- source => [
- {
- name => 'perl',
- url => 'http://mirrors.kernel.org/CPAN/src/perl-5.8.8.tar.gz',
- license => {
- 'perl-5.8.8/Readme' => 'perl/Readme',
- 'perl-5.8.8/Artistic' => 'perl/Artistic',
- 'perl-5.8.8/Copying' => 'perl/Copying',
- },
- unpack_to => 'perl',
- install_to => 'perl',
- after => {
- 'extra\Config.pm' => 'lib\CPAN\Config.pm',
- },
- }
- ],
- modules => [
- {
- name => 'Win32::Job',
- unpack_to => {
- APIFile => 'Win32API-File',
- },
- },
- {
- name => 'IO',
- force => 1,
- },
- {
- name => 'Compress::Zlib',
- },
- {
- name => 'IO::Zlib',
- },
- {
- name => 'Archive::Tar',
- },
- {
- name => 'Net::FTP',
- extra => {
- 'extra\libnet.cfg' => 'libnet.cfg',
- },
- },
- ],
- extra => {
- 'README' => 'README.txt',
- 'LICENSE.txt' => 'LICENSE.txt',
- 'Changes' => 'Release-Notes.txt',
- 'extra\Config.pm' => 'perl\lib\CPAN\Config.pm',
- 'extra\links\Perl-Documentation.url' => 'links\Perl Documentation.url',
- 'extra\links\Perl-Homepage.url' => 'links\Perl Homepage.url',
- 'extra\links\Perl-Mailing-Lists.url' => 'links\Perl Mailing Lists.url',
- 'extra\links\Perlmonks-Community-Forum.url' => 'links\Perlmonks Community Forum.url',
- 'extra\links\Search-CPAN-Modules.url' => 'links\Search CPAN Modules.url',
- 'extra\links\Vanilla-Perl-Homepage.url' => 'links\Vanilla Perl Homepage.url',
- },
- } ],
- 'vanilla.yml',
- nosyck => 1,
- noyamlperl => 1,
+ $vanilla,
+ [ {
+ package_name => 'VanillaPerl',
+ package_version => 5,
+ download_dir => 'c:\temp\vp_sources',
+ build_dir => 'c:\temp\vp_build',
+ image_dir => 'c:\vanilla-perl',
+ binary => [
+ {
+ name => 'dmake',
+ url => 'http://search.cpan.org/CPAN/authors/id/S/SH/SHAY/dmake-4.5-20060619-SHAY.zip',
+ license => {
+ 'dmake/COPYING' => 'dmake/COPYING',
+ 'dmake/readme/license.txt' => 'dmake/license.txt',
+ },
+ install_to => {
+ 'dmake/dmake.exe' => 'dmake/bin/dmake.exe',
+ 'dmake/startup' => 'dmake/bin/startup',
+ },
+ },
+ {
+ name => 'gcc-core',
+ url => 'http://umn.dl.sourceforge.net/mingw/gcc-core-3.4.5-20060117-1.tar.gz',
+ license => {
+ 'COPYING' => 'gcc/COPYING',
+ 'COPYING.lib' => 'gcc/COPYING.lib',
+ },
+ install_to => 'mingw',
+ },
+ {
+ name => 'gcc-g++',
+ url => 'http://umn.dl.sourceforge.net/mingw/gcc-g++-3.4.5-20060117-1.tar.gz',
+ license => undef,
+ install_to => 'mingw',
+ },
+ {
+ name => 'binutils',
+ url => 'http://umn.dl.sourceforge.net/mingw/binutils-2.16.91-20060119-1.tar.gz',
+ license => {
+ 'Copying' => 'binutils/Copying',
+ 'Copying.lib' => 'binutils/Copying.lib',
+ },
+ install_to => 'mingw',
+ },
+ {
+ name => 'mingw-runtime',
+ url => 'http://umn.dl.sourceforge.net/mingw/mingw-runtime-3.10.tar.gz',
+ license => {
+ 'doc/mingw-runtime/Contributors' => 'mingw/Contributors',
+ 'doc/mingw-runtime/Disclaimer' => 'mingw/Disclaimer',
+ },
+ install_to => 'mingw',
+ },
+ {
+ name => 'w32api',
+ url => 'http://umn.dl.sourceforge.net/mingw/w32api-3.6.tar.gz',
+ license => undef,
+ install_to => 'mingw',
+ extra => {
+ 'extra\README.w32api' => 'licenses\win32api\README.w32api',
+ },
+ }
+ ],
+ source => [
+ {
+ name => 'perl',
+ url => 'http://mirrors.kernel.org/CPAN/src/perl-5.8.8.tar.gz',
+ license => {
+ 'perl-5.8.8/Readme' => 'perl/Readme',
+ 'perl-5.8.8/Artistic' => 'perl/Artistic',
+ 'perl-5.8.8/Copying' => 'perl/Copying',
+ },
+ unpack_to => 'perl',
+ install_to => 'perl',
+ after => {
+ 'extra\Config.pm' => 'lib\CPAN\Config.pm',
+ },
+ }
+ ],
+ modules => [
+ {
+ name => 'Win32::Job',
+ unpack_to => {
+ APIFile => 'Win32API-File',
+ },
+ },
+ {
+ name => 'IO',
+ force => 1,
+ },
+ {
+ name => 'Compress::Zlib',
+ },
+ {
+ name => 'IO::Zlib',
+ },
+ {
+ name => 'Archive::Tar',
+ },
+ {
+ name => 'Net::FTP',
+ extra => {
+ 'extra\libnet.cfg' => 'libnet.cfg',
+ },
+ },
+ ],
+ extra => {
+ 'README' => 'README.txt',
+ 'LICENSE.txt' => 'LICENSE.txt',
+ 'Changes' => 'Release-Notes.txt',
+ 'extra\Config.pm' => 'perl\lib\CPAN\Config.pm',
+ 'extra\links\Perl-Documentation.url' => 'links\Perl Documentation.url',
+ 'extra\links\Perl-Homepage.url' => 'links\Perl Homepage.url',
+ 'extra\links\Perl-Mailing-Lists.url' => 'links\Perl Mailing Lists.url',
+ 'extra\links\Perlmonks-Community-Forum.url' => 'links\Perlmonks Community Forum.url',
+ 'extra\links\Search-CPAN-Modules.url' => 'links\Search CPAN Modules.url',
+ 'extra\links\Vanilla-Perl-Homepage.url' => 'links\Vanilla Perl Homepage.url',
+ },
+ } ],
+ 'vanilla.yml',
+ nosyck => 1,
+ noyamlperl => 1,
);
diff --git a/cpan/CPAN-Meta-YAML/t/14_yaml_org.t b/cpan/CPAN-Meta-YAML/t/14_yaml_org.t
index c2945b9db9..18b5eb5ce4 100644
--- a/cpan/CPAN-Meta-YAML/t/14_yaml_org.t
+++ b/cpan/CPAN-Meta-YAML/t/14_yaml_org.t
@@ -1,11 +1,11 @@
-#!/usr/bin/perl
-
# Testing of common META.yml examples
use strict;
+use warnings;
+
BEGIN {
- $| = 1;
- $^W = 1;
+ $| = 1;
+ $^W = 1;
}
use File::Spec::Functions ':ALL';
@@ -24,40 +24,40 @@ my $sample_file = catfile( test_data_directory(), 'sample.yml' );
my $sample = load_ok( 'sample.yml', $sample_file, 500 );
yaml_ok(
- $sample,
- [ {
- invoice => 34843,
- date => '2001-01-23',
- 'bill-to' => {
- given => 'Chris',
- family => 'Dumars',
- address => {
- lines => "458 Walkman Dr.\nSuite #292\n",
- city => 'Royal Oak',
- state => 'MI',
- postal => 48046,
- },
- },
- product => [
- {
- sku => 'BL394D',
- quantity => '4',
- description => 'Basketball',
- price => '450.00',
- },
- {
- sku => 'BL4438H',
- quantity => '1',
- description => 'Super Hoop',
- price => '2392.00',
- },
- ],
- tax => '251.42',
- total => '4443.52',
- comments => <<'END_TEXT',
+ $sample,
+ [ {
+ invoice => 34843,
+ date => '2001-01-23',
+ 'bill-to' => {
+ given => 'Chris',
+ family => 'Dumars',
+ address => {
+ lines => "458 Walkman Dr.\nSuite #292\n",
+ city => 'Royal Oak',
+ state => 'MI',
+ postal => 48046,
+ },
+ },
+ product => [
+ {
+ sku => 'BL394D',
+ quantity => '4',
+ description => 'Basketball',
+ price => '450.00',
+ },
+ {
+ sku => 'BL4438H',
+ quantity => '1',
+ description => 'Super Hoop',
+ price => '2392.00',
+ },
+ ],
+ tax => '251.42',
+ total => '4443.52',
+ comments => <<'END_TEXT',
Late afternoon is best. Backup contact is Nancy Billsmer @ 338-4338.
END_TEXT
- } ],
- 'sample.yml',
- # nosyck => 1,
+ } ],
+ 'sample.yml',
+ # nosyck => 1,
);
diff --git a/cpan/CPAN-Meta-YAML/t/15_multibyte.t b/cpan/CPAN-Meta-YAML/t/15_multibyte.t
index 5adbc1e878..07980844a2 100644
--- a/cpan/CPAN-Meta-YAML/t/15_multibyte.t
+++ b/cpan/CPAN-Meta-YAML/t/15_multibyte.t
@@ -1,11 +1,11 @@
-#!/usr/bin/perl
-
# Testing of META.yml containing AVAR's name
use strict;
+use warnings;
+
BEGIN {
- $| = 1;
- $^W = 1;
+ $| = 1;
+ $^W = 1;
}
use File::Spec::Functions ':ALL';
@@ -30,23 +30,23 @@ my $yaml = eval { CPAN::Meta::YAML->read_string( $yaml_copy ); };
is( $@, '', "$name: CPAN::Meta::YAML parses without error" );
is( $yaml_copy, $sample, "$name: CPAN::Meta::YAML does not modify the input string" );
SKIP: {
- skip( "Shortcutting after failure", 2 ) if $@;
- isa_ok( $yaml, 'CPAN::Meta::YAML' );
- is_deeply( $yaml->[0]->{build_requires}, {
- 'Config' => 0,
- 'Test::More' => 0,
- 'XSLoader' => 0,
- }, 'build_requires ok' );
+ skip( "Shortcutting after failure", 2 ) if $@;
+ isa_ok( $yaml, 'CPAN::Meta::YAML' );
+ is_deeply( $yaml->[0]->{build_requires}, {
+ 'Config' => 0,
+ 'Test::More' => 0,
+ 'XSLoader' => 0,
+ }, 'build_requires ok' );
}
SKIP: {
- unless ( CPAN::Meta::YAML::HAVE_UTF8() ) {
- skip("no utf8 support", 2 );
- }
- eval { utf8::is_utf8('') };
- if ( $@ ) {
- skip("no is_utf8 to test with until 5.8.1", 2);
- }
- ok( utf8::is_utf8($yaml->[0]->{author}), "utf8 decoded" );
- is( length($yaml->[0]->{author}), 39, "utf8 decoded as characters" );
+ unless ( CPAN::Meta::YAML::HAVE_UTF8() ) {
+ skip("no utf8 support", 2 );
+ }
+ eval { utf8::is_utf8('') };
+ if ( $@ ) {
+ skip("no is_utf8 to test with until 5.8.1", 2);
+ }
+ ok( utf8::is_utf8($yaml->[0]->{author}), "utf8 decoded" );
+ is( length($yaml->[0]->{author}), 39, "utf8 decoded as characters" );
}
diff --git a/cpan/CPAN-Meta-YAML/t/16_nullrefs.t b/cpan/CPAN-Meta-YAML/t/16_nullrefs.t
index 158467ec58..36bd730527 100644
--- a/cpan/CPAN-Meta-YAML/t/16_nullrefs.t
+++ b/cpan/CPAN-Meta-YAML/t/16_nullrefs.t
@@ -1,11 +1,11 @@
-#!/usr/bin/perl
-
# Testing for null references
use strict;
+use warnings;
+
BEGIN {
- $| = 1;
- $^W = 1;
+ $| = 1;
+ $^W = 1;
}
use File::Spec::Functions ':ALL';
@@ -21,10 +21,10 @@ use CPAN::Meta::YAML;
# Example Empty References
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
--- []
--- {}
END_YAML
- [ [], {} ],
- 'Empty references',
+ [ [], {} ],
+ 'Empty references',
);
diff --git a/cpan/CPAN-Meta-YAML/t/17_toolbar.t b/cpan/CPAN-Meta-YAML/t/17_toolbar.t
index f5d4d430b1..31ad6bc1e7 100644
--- a/cpan/CPAN-Meta-YAML/t/17_toolbar.t
+++ b/cpan/CPAN-Meta-YAML/t/17_toolbar.t
@@ -1,11 +1,11 @@
-#!/usr/bin/perl
-
# Testing of a known-bad file from an editor
use strict;
+use warnings;
+
BEGIN {
- $| = 1;
- $^W = 1;
+ $| = 1;
+ $^W = 1;
}
use File::Spec::Functions ':ALL';
@@ -25,26 +25,26 @@ my $toolbar_file = catfile( test_data_directory(), 'toolbar.yml' );
my $toolbar = load_ok( 'toolbar.yml', $toolbar_file, 100 );
yaml_ok(
- $toolbar,
- [ {
- main_toolbar => [
- 'item file-new',
- 'item file-open',
- 'item file-print#',
- 'item file-close#',
- 'item file-save-all',
- 'item file-save',
- undef,
- 'item edit-changes-undo',
- 'item edit-changes-redo',
- undef,
- 'item edit-cut',
- 'item edit-copy',
- 'item edit-paste',
- 'item edit-replace',
- 'item edit-delete',
- ]
- } ],
- 'toolbar.yml',
- noyamlperl => 1,
+ $toolbar,
+ [ {
+ main_toolbar => [
+ 'item file-new',
+ 'item file-open',
+ 'item file-print#',
+ 'item file-close#',
+ 'item file-save-all',
+ 'item file-save',
+ undef,
+ 'item edit-changes-undo',
+ 'item edit-changes-redo',
+ undef,
+ 'item edit-cut',
+ 'item edit-copy',
+ 'item edit-paste',
+ 'item edit-replace',
+ 'item edit-delete',
+ ]
+ } ],
+ 'toolbar.yml',
+ noyamlperl => 1,
);
diff --git a/cpan/CPAN-Meta-YAML/t/18_tap.t b/cpan/CPAN-Meta-YAML/t/18_tap.t
index adb2f01afc..9c86748090 100644
--- a/cpan/CPAN-Meta-YAML/t/18_tap.t
+++ b/cpan/CPAN-Meta-YAML/t/18_tap.t
@@ -1,11 +1,11 @@
-#!/usr/bin/perl
-
# Testing relating to functionality in the Test Anything Protocol
use strict;
+use warnings;
+
BEGIN {
- $| = 1;
- $^W = 1;
+ $| = 1;
+ $^W = 1;
}
use File::Spec::Functions ':ALL';
@@ -22,59 +22,59 @@ use CPAN::Meta::YAML ();
# Make sure we support x-foo keys
yaml_ok(
- "---\nx-foo: 1\n",
- [ { 'x-foo' => 1 } ],
- 'x-foo key',
+ "---\nx-foo: 1\n",
+ [ { 'x-foo' => 1 } ],
+ 'x-foo key',
);
# Document ending (hash)
yaml_ok(
- "---\n"
- . " foo: bar\n"
- . "...\n",
- [ { foo => "bar" } ],
- 'document_end_hash',
- noyamlpm => 1,
- nosyck => 1,
- noyamlperl => 1,
+ "---\n"
+ . " foo: bar\n"
+ . "...\n",
+ [ { foo => "bar" } ],
+ 'document_end_hash',
+ noyamlpm => 1,
+ nosyck => 1,
+ noyamlperl => 1,
);
# Document ending (array)
yaml_ok(
- "---\n"
- . "- foo\n"
- . "...\n",
- [ [ 'foo' ] ],
- 'document_end_array',
- noyamlpm => 1,
- noyamlperl => 1,
+ "---\n"
+ . "- foo\n"
+ . "...\n",
+ [ [ 'foo' ] ],
+ 'document_end_array',
+ noyamlpm => 1,
+ noyamlperl => 1,
);
# Multiple documents (simple)
yaml_ok(
- "---\n"
- . "- foo\n"
- . "...\n"
- . "---\n"
- . "- foo\n"
- . "...\n",
- [ [ 'foo' ], [ 'foo' ] ],
- 'multi_document_simple',
- noyamlpm => 1,
- noyamlperl => 1,
+ "---\n"
+ . "- foo\n"
+ . "...\n"
+ . "---\n"
+ . "- foo\n"
+ . "...\n",
+ [ [ 'foo' ], [ 'foo' ] ],
+ 'multi_document_simple',
+ noyamlpm => 1,
+ noyamlperl => 1,
);
# Multiple documents (whitespace-separated)
yaml_ok(
- "---\n"
- . "- foo\n"
- . "...\n"
- . "\n"
- . "---\n"
- . "- foo\n"
- . "...\n",
- [ [ 'foo' ], [ 'foo' ] ],
- 'multi_document_space',
- noyamlpm => 1,
- noyamlperl => 1,
+ "---\n"
+ . "- foo\n"
+ . "...\n"
+ . "\n"
+ . "---\n"
+ . "- foo\n"
+ . "...\n",
+ [ [ 'foo' ], [ 'foo' ] ],
+ 'multi_document_space',
+ noyamlpm => 1,
+ noyamlperl => 1,
);
diff --git a/cpan/CPAN-Meta-YAML/t/19_errors.t b/cpan/CPAN-Meta-YAML/t/19_errors.t
index e5cb6459bc..cac7714b26 100644
--- a/cpan/CPAN-Meta-YAML/t/19_errors.t
+++ b/cpan/CPAN-Meta-YAML/t/19_errors.t
@@ -1,11 +1,11 @@
-#!/usr/bin/perl
-
# Testing documents that should fail
use strict;
+use warnings;
+
BEGIN {
- $| = 1;
- $^W = 1;
+ $| = 1;
+ $^W = 1;
}
use File::Spec::Functions ':ALL';
@@ -35,10 +35,10 @@ END_YAML
yaml_error( <<'END_YAML', $FEATURE );
---
-version: !!perl/hash:version
+version: !!perl/hash:version
original: v2.0.2
qv: 1
- version:
+ version:
- 2
- 0
- 2
diff --git a/cpan/CPAN-Meta-YAML/t/20_subclass.t b/cpan/CPAN-Meta-YAML/t/20_subclass.t
index 50b5ea113c..97ee993fc1 100644
--- a/cpan/CPAN-Meta-YAML/t/20_subclass.t
+++ b/cpan/CPAN-Meta-YAML/t/20_subclass.t
@@ -1,11 +1,11 @@
-#!/usr/bin/perl
-
# Testing documents that should fail
use strict;
+use warnings;
+
BEGIN {
- $| = 1;
- $^W = 1;
+ $| = 1;
+ $^W = 1;
}
use File::Spec::Functions ':ALL';
@@ -20,27 +20,27 @@ use Test::More tests => 1;
# Customized Class
SCOPE: {
- package Foo;
-
- use CPAN::Meta::YAML;
-
- use vars qw{@ISA};
- BEGIN {
- @ISA = 'CPAN::Meta::YAML';
- }
-
- sub _write_scalar {
- my $self = shift;
- my $string = shift;
- my $indent = shift;
- if ( defined $indent ) {
- return "'$indent'";
- } else {
- return 'undef';
- }
- }
-
- 1;
+ package Foo;
+
+ use CPAN::Meta::YAML;
+
+ use vars qw{@ISA};
+ BEGIN {
+ @ISA = 'CPAN::Meta::YAML';
+ }
+
+ sub _write_scalar {
+ my $self = shift;
+ my $string = shift;
+ my $indent = shift;
+ if ( defined $indent ) {
+ return "'$indent'";
+ } else {
+ return 'undef';
+ }
+ }
+
+ 1;
}
@@ -51,6 +51,6 @@ SCOPE: {
# Generate the value
my $object = Foo->new(
- { foo => 'bar' }
+ { foo => 'bar' }
);
is( $object->write_string, "---\nfoo: '1'\n", 'Subclassing works' );
diff --git a/cpan/CPAN-Meta-YAML/t/21_bom.t b/cpan/CPAN-Meta-YAML/t/21_bom.t
index e28eff6d32..4765fa6c8f 100644
--- a/cpan/CPAN-Meta-YAML/t/21_bom.t
+++ b/cpan/CPAN-Meta-YAML/t/21_bom.t
@@ -1,9 +1,9 @@
-#!/usr/bin/perl
-
use strict;
+use warnings;
+
BEGIN {
- $| = 1;
- $^W = 1;
+ $| = 1;
+ $^W = 1;
}
use File::Spec::Functions ':ALL';
@@ -28,7 +28,7 @@ my $yaml = eval { CPAN::Meta::YAML->read_string( $yaml_copy ); };
is( $@, '', "$name: CPAN::Meta::YAML parses without error" );
is( $yaml_copy, $sample, "$name: CPAN::Meta::YAML does not modify the input string" );
SKIP: {
- skip( "Shortcutting after failure", 2 ) if $@;
- is( $yaml, undef, "file not parsed" );
- is( CPAN::Meta::YAML->errstr, "Stream has a non UTF-8 BOM", "correct error" );
+ skip( "Shortcutting after failure", 2 ) if $@;
+ is( $yaml, undef, "file not parsed" );
+ is( CPAN::Meta::YAML->errstr, "Stream has a non UTF-8 BOM", "correct error" );
}
diff --git a/cpan/CPAN-Meta-YAML/t/22_comments.t b/cpan/CPAN-Meta-YAML/t/22_comments.t
index 8b3f4df259..1f0f4028ce 100644
--- a/cpan/CPAN-Meta-YAML/t/22_comments.t
+++ b/cpan/CPAN-Meta-YAML/t/22_comments.t
@@ -1,12 +1,12 @@
-#!/usr/bin/perl
-
# Testing of inline comments. These comments can be quite useful in config
# files and people will expect them to work.
use strict;
+use warnings;
+
BEGIN {
- $| = 1;
- $^W = 1;
+ $| = 1;
+ $^W = 1;
}
use File::Spec::Functions ':ALL';
@@ -22,7 +22,7 @@ use CPAN::Meta::YAML;
# Main Tests
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
a: b#content
c: d #comment
@@ -41,33 +41,33 @@ l: [] # comment
m: # comment
n: o
END_YAML
- [
- {
- a => 'b#content',
- c => 'd',
- e => [
- 'f',
- 'g# content',
- ],
- h => 'single',
- h2 => 'single # content',
- i => 'double',
- i2 => 'double # content',
- j => "literal # content\nblock # content\n",
- k => {},
- l => [],
- m => {
- n => 'o',
- },
- },
- ],
- 'Properly ignore comments',
- noyamlpm => 1,
+ [
+ {
+ a => 'b#content',
+ c => 'd',
+ e => [
+ 'f',
+ 'g# content',
+ ],
+ h => 'single',
+ h2 => 'single # content',
+ i => 'double',
+ i2 => 'double # content',
+ j => "literal # content\nblock # content\n",
+ k => {},
+ l => [],
+ m => {
+ n => 'o',
+ },
+ },
+ ],
+ 'Properly ignore comments',
+ noyamlpm => 1,
);
# Repeat, with otherwise illegal characters in the comments
yaml_ok(
- <<'END_YAML',
+ <<'END_YAML',
---
a: b#content
c: d #comment '"!&@%`
@@ -86,26 +86,26 @@ l: [] # comment '"!&@%`
m: # comment '"!&@%`
n: o
END_YAML
- [
- {
- a => 'b#content',
- c => 'd',
- e => [
- 'f',
- 'g# content',
- ],
- h => 'single',
- h2 => 'single # content',
- i => 'double',
- i2 => 'double # content',
- j => "literal # content\nblock # content\n",
- k => {},
- l => [],
- m => {
- n => 'o',
- },
- },
- ],
- 'Properly ignore comments (with otherwise illegal characters)',
- noyamlpm => 1,
+ [
+ {
+ a => 'b#content',
+ c => 'd',
+ e => [
+ 'f',
+ 'g# content',
+ ],
+ h => 'single',
+ h2 => 'single # content',
+ i => 'double',
+ i2 => 'double # content',
+ j => "literal # content\nblock # content\n",
+ k => {},
+ l => [],
+ m => {
+ n => 'o',
+ },
+ },
+ ],
+ 'Properly ignore comments (with otherwise illegal characters)',
+ noyamlpm => 1,
);
diff --git a/cpan/CPAN-Meta-YAML/t/lib/Test.pm b/cpan/CPAN-Meta-YAML/t/lib/Test.pm
index 92cb05ef94..63dae54eed 100644
--- a/cpan/CPAN-Meta-YAML/t/lib/Test.pm
+++ b/cpan/CPAN-Meta-YAML/t/lib/Test.pm
@@ -1,308 +1,310 @@
package t::lib::Test;
use strict;
+use warnings;
+
use Exporter ();
use File::Spec ();
use Test::More ();
use vars qw{@ISA @EXPORT};
BEGIN {
- @ISA = qw{ Exporter };
- @EXPORT = qw{
- tests yaml_ok yaml_error slurp load_ok
- test_data_directory
- };
+ @ISA = qw{ Exporter };
+ @EXPORT = qw{
+ tests yaml_ok yaml_error slurp load_ok
+ test_data_directory
+ };
}
# Do we have the authorative YAML to test against
eval {
- require YAML;
+ require YAML;
- # This doesn't currently work, but is documented to.
- # So if it ever turns up, use it.
- $YAML::UseVersion = 1;
+ # This doesn't currently work, but is documented to.
+ # So if it ever turns up, use it.
+ $YAML::UseVersion = 1;
};
my $HAVE_YAMLPM = !! (
- $YAML::VERSION
- and
- $YAML::VERSION >= 0.66
+ $YAML::VERSION
+ and
+ $YAML::VERSION >= 0.66
);
sub have_yamlpm { $HAVE_YAMLPM }
# Do we have YAML::Perl to test against?
eval {
- require YAML::Perl;
+ require YAML::Perl;
};
my $HAVE_YAMLPERL = !! (
- $YAML::Perl::VERSION
- and
- $YAML::Perl::VERSION >= 0.02
+ $YAML::Perl::VERSION
+ and
+ $YAML::Perl::VERSION >= 0.02
);
sub have_yamlperl { $HAVE_YAMLPERL }
# Do we have YAML::Syck to test against?
eval {
- require YAML::Syck;
+ require YAML::Syck;
};
my $HAVE_SYCK = !! (
- $YAML::Syck::VERSION
- and
- $YAML::Syck::VERSION >= 1.05
+ $YAML::Syck::VERSION
+ and
+ $YAML::Syck::VERSION >= 1.05
);
sub have_syck { $HAVE_SYCK }
# Do we have YAML::XS to test against?
eval {
- require YAML::XS;
+ require YAML::XS;
};
my $HAVE_XS = !! (
- $YAML::XS::VERSION
- and
- $YAML::XS::VERSION >= 0.29
+ $YAML::XS::VERSION
+ and
+ $YAML::XS::VERSION >= 0.29
);
sub have_xs{ $HAVE_XS }
# 22 tests per call to yaml_ok
# 4 tests per call to load_ok
sub tests {
- return ( tests => count(@_) );
+ return ( tests => count(@_) );
}
sub test_data_directory {
- return File::Spec->catdir( 't', 'data' );
+ return File::Spec->catdir( 't', 'data' );
}
sub count {
- my $yaml_ok = shift || 0;
- my $load_ok = shift || 0;
- my $single = shift || 0;
- my $count = $yaml_ok * 38 + $load_ok * 4 + $single;
- return $count;
+ my $yaml_ok = shift || 0;
+ my $load_ok = shift || 0;
+ my $single = shift || 0;
+ my $count = $yaml_ok * 38 + $load_ok * 4 + $single;
+ return $count;
}
sub yaml_ok {
- my $string = shift;
- my $object = shift;
- my $name = shift || 'unnamed';
- my %options = ( @_ );
- bless $object, 'CPAN::Meta::YAML';
-
- # If YAML itself is available, test with it
- SKIP: {
- unless ( $HAVE_YAMLPM ) {
- Test::More::skip( "Skipping YAML.pm, not available for testing", 7 );
- }
- if ( $options{noyamlpm} ) {
- Test::More::skip( "Skipping YAML.pm for known-broken feature", 7 );
- }
-
- # Test writing with YAML.pm
- my $yamlpm_out = eval { YAML::Dump( @$object ) };
- Test::More::is( $@, '', "$name: YAML.pm saves without error" );
- SKIP: {
- Test::More::skip( "Shortcutting after failure", 4 ) if $@;
- Test::More::ok(
- !!(defined $yamlpm_out and ! ref $yamlpm_out),
- "$name: YAML.pm serializes correctly",
- );
- my @yamlpm_round = eval { YAML::Load( $yamlpm_out ) };
- Test::More::is( $@, '', "$name: YAML.pm round-trips without error" );
- Test::More::skip( "Shortcutting after failure", 2 ) if $@;
- my $round = bless [ @yamlpm_round ], 'CPAN::Meta::YAML';
- Test::More::is_deeply( $round, $object, "$name: YAML.pm round-trips correctly" );
- }
-
- # Test reading with YAML.pm
- my $yamlpm_copy = $string;
- my @yamlpm_in = eval { YAML::Load( $yamlpm_copy ) };
- Test::More::is( $@, '', "$name: YAML.pm loads without error" );
- Test::More::is( $yamlpm_copy, $string, "$name: YAML.pm does not modify the input string" );
- SKIP: {
- Test::More::skip( "Shortcutting after failure", 1 ) if $@;
- Test::More::is_deeply( \@yamlpm_in, $object, "$name: YAML.pm parses correctly" );
- }
- }
-
- # If YAML::Syck itself is available, test with it
- SKIP: {
- unless ( $HAVE_SYCK ) {
- Test::More::skip( "Skipping YAML::Syck, not available for testing", 7 );
- }
- if ( $options{nosyck} ) {
- Test::More::skip( "Skipping YAML::Syck for known-broken feature", 7 );
- }
- unless ( @$object == 1 ) {
- Test::More::skip( "Skipping YAML::Syck for unsupported feature", 7 );
- }
-
- # Test writing with YAML::Syck
- my $syck_out = eval { YAML::Syck::Dump( @$object ) };
- Test::More::is( $@, '', "$name: YAML::Syck saves without error" );
- SKIP: {
- Test::More::skip( "Shortcutting after failure", 4 ) if $@;
- Test::More::ok(
- !!(defined $syck_out and ! ref $syck_out),
- "$name: YAML::Syck serializes correctly",
- );
- my @syck_round = eval { YAML::Syck::Load( $syck_out ) };
- Test::More::is( $@, '', "$name: YAML::Syck round-trips without error" );
- Test::More::skip( "Shortcutting after failure", 2 ) if $@;
- my $round = bless [ @syck_round ], 'CPAN::Meta::YAML';
- Test::More::is_deeply( $round, $object, "$name: YAML::Syck round-trips correctly" );
- }
-
- # Test reading with YAML::Syck
- my $syck_copy = $string;
- my @syck_in = eval { YAML::Syck::Load( $syck_copy ) };
- Test::More::is( $@, '', "$name: YAML::Syck loads without error" );
- Test::More::is( $syck_copy, $string, "$name: YAML::Syck does not modify the input string" );
- SKIP: {
- Test::More::skip( "Shortcutting after failure", 1 ) if $@;
- Test::More::is_deeply( \@syck_in, $object, "$name: YAML::Syck parses correctly" );
- }
- }
-
- # If YAML::XS itself is available, test with it
- SKIP: {
- unless ( $HAVE_XS ) {
- Test::More::skip( "Skipping YAML::XS, not available for testing", 7 );
- }
- if ( $options{noxs} ) {
- Test::More::skip( "Skipping YAML::XS for known-broken feature", 7 );
- }
-
- # Test writing with YAML::XS
- my $xs_out = eval { YAML::XS::Dump( @$object ) };
- Test::More::is( $@, '', "$name: YAML::XS saves without error" );
- SKIP: {
- Test::More::skip( "Shortcutting after failure", 4 ) if $@;
- Test::More::ok(
- !!(defined $xs_out and ! ref $xs_out),
- "$name: YAML::XS serializes correctly",
- );
- my @xs_round = eval { YAML::XS::Load( $xs_out ) };
- Test::More::is( $@, '', "$name: YAML::XS round-trips without error" );
- Test::More::skip( "Shortcutting after failure", 2 ) if $@;
- my $round = bless [ @xs_round ], 'CPAN::Meta::YAML';
- Test::More::is_deeply( $round, $object, "$name: YAML::XS round-trips correctly" );
- }
-
- # Test reading with YAML::XS
- my $xs_copy = $string;
- my @xs_in = eval { YAML::XS::Load( $xs_copy ) };
- Test::More::is( $@, '', "$name: YAML::XS loads without error" );
- Test::More::is( $xs_copy, $string, "$name: YAML::XS does not modify the input string" );
- SKIP: {
- Test::More::skip( "Shortcutting after failure", 1 ) if $@;
- Test::More::is_deeply( \@xs_in, $object, "$name: YAML::XS parses correctly" );
- }
- }
-
- # If YAML::Perl is available, test with it
- SKIP: {
- unless ( $HAVE_YAMLPERL ) {
- Test::More::skip( "Skipping YAML::Perl, not available for testing", 7 );
- }
- if ( $options{noyamlperl} ) {
- Test::More::skip( "Skipping YAML::Perl for known-broken feature", 7 );
- }
-
- # Test writing with YAML.pm
- my $yamlperl_out = eval { YAML::Perl::Dump( @$object ) };
- Test::More::is( $@, '', "$name: YAML::Perl saves without error" );
- SKIP: {
- Test::More::skip( "Shortcutting after failure", 4 ) if $@;
- Test::More::ok(
- !!(defined $yamlperl_out and ! ref $yamlperl_out),
- "$name: YAML::Perl serializes correctly",
- );
- my @yamlperl_round = eval { YAML::Perl::Load( $yamlperl_out ) };
- Test::More::is( $@, '', "$name: YAML::Perl round-trips without error" );
- Test::More::skip( "Shortcutting after failure", 2 ) if $@;
- my $round = bless [ @yamlperl_round ], 'CPAN::Meta::YAML';
- Test::More::is_deeply( $round, $object, "$name: YAML::Perl round-trips correctly" );
- }
-
- # Test reading with YAML::Perl
- my $yamlperl_copy = $string;
- my @yamlperl_in = eval { YAML::Perl::Load( $yamlperl_copy ) };
- Test::More::is( $@, '', "$name: YAML::Perl loads without error" );
- Test::More::is( $yamlperl_copy, $string, "$name: YAML::Perl does not modify the input string" );
- SKIP: {
- Test::More::skip( "Shortcutting after failure", 1 ) if $@;
- Test::More::is_deeply( \@yamlperl_in, $object, "$name: YAML::Perl parses correctly" );
- }
- }
-
- # Does the string parse to the structure
- my $yaml_copy = $string;
- my $yaml = eval { CPAN::Meta::YAML->read_string( $yaml_copy ); };
- Test::More::is( $@, '', "$name: CPAN::Meta::YAML parses without error" );
- Test::More::is( $yaml_copy, $string, "$name: CPAN::Meta::YAML does not modify the input string" );
- SKIP: {
- Test::More::skip( "Shortcutting after failure", 2 ) if $@;
- Test::More::isa_ok( $yaml, 'CPAN::Meta::YAML' );
- Test::More::is_deeply( $yaml, $object, "$name: CPAN::Meta::YAML parses correctly" );
- }
-
- # Does the structure serialize to the string.
- # We can't test this by direct comparison, because any
- # whitespace or comments would be lost.
- # So instead we parse back in.
- my $output = eval { $object->write_string };
- Test::More::is( $@, '', "$name: CPAN::Meta::YAML serializes without error" );
- SKIP: {
- Test::More::skip( "Shortcutting after failure", 5 ) if $@;
- Test::More::ok(
- !!(defined $output and ! ref $output),
- "$name: CPAN::Meta::YAML serializes correctly",
- );
- my $roundtrip = eval { CPAN::Meta::YAML->read_string( $output ) };
- Test::More::is( $@, '', "$name: CPAN::Meta::YAML round-trips without error" );
- Test::More::skip( "Shortcutting after failure", 2 ) if $@;
- Test::More::isa_ok( $roundtrip, 'CPAN::Meta::YAML' );
- Test::More::is_deeply( $roundtrip, $object, "$name: CPAN::Meta::YAML round-trips correctly" );
-
- # Testing the serialization
- Test::More::skip( "Shortcutting perfect serialization tests", 1 ) unless $options{serializes};
- Test::More::is( $output, $string, 'Serializes ok' );
- }
-
- # Return true as a convenience
- return 1;
+ my $string = shift;
+ my $object = shift;
+ my $name = shift || 'unnamed';
+ my %options = ( @_ );
+ bless $object, 'CPAN::Meta::YAML';
+
+ # If YAML itself is available, test with it
+ SKIP: {
+ unless ( $HAVE_YAMLPM ) {
+ Test::More::skip( "Skipping YAML.pm, not available for testing", 7 );
+ }
+ if ( $options{noyamlpm} ) {
+ Test::More::skip( "Skipping YAML.pm for known-broken feature", 7 );
+ }
+
+ # Test writing with YAML.pm
+ my $yamlpm_out = eval { YAML::Dump( @$object ) };
+ Test::More::is( $@, '', "$name: YAML.pm saves without error" );
+ SKIP: {
+ Test::More::skip( "Shortcutting after failure", 4 ) if $@;
+ Test::More::ok(
+ !!(defined $yamlpm_out and ! ref $yamlpm_out),
+ "$name: YAML.pm serializes correctly",
+ );
+ my @yamlpm_round = eval { YAML::Load( $yamlpm_out ) };
+ Test::More::is( $@, '', "$name: YAML.pm round-trips without error" );
+ Test::More::skip( "Shortcutting after failure", 2 ) if $@;
+ my $round = bless [ @yamlpm_round ], 'CPAN::Meta::YAML';
+ Test::More::is_deeply( $round, $object, "$name: YAML.pm round-trips correctly" );
+ }
+
+ # Test reading with YAML.pm
+ my $yamlpm_copy = $string;
+ my @yamlpm_in = eval { YAML::Load( $yamlpm_copy ) };
+ Test::More::is( $@, '', "$name: YAML.pm loads without error" );
+ Test::More::is( $yamlpm_copy, $string, "$name: YAML.pm does not modify the input string" );
+ SKIP: {
+ Test::More::skip( "Shortcutting after failure", 1 ) if $@;
+ Test::More::is_deeply( \@yamlpm_in, $object, "$name: YAML.pm parses correctly" );
+ }
+ }
+
+ # If YAML::Syck itself is available, test with it
+ SKIP: {
+ unless ( $HAVE_SYCK ) {
+ Test::More::skip( "Skipping YAML::Syck, not available for testing", 7 );
+ }
+ if ( $options{nosyck} ) {
+ Test::More::skip( "Skipping YAML::Syck for known-broken feature", 7 );
+ }
+ unless ( @$object == 1 ) {
+ Test::More::skip( "Skipping YAML::Syck for unsupported feature", 7 );
+ }
+
+ # Test writing with YAML::Syck
+ my $syck_out = eval { YAML::Syck::Dump( @$object ) };
+ Test::More::is( $@, '', "$name: YAML::Syck saves without error" );
+ SKIP: {
+ Test::More::skip( "Shortcutting after failure", 4 ) if $@;
+ Test::More::ok(
+ !!(defined $syck_out and ! ref $syck_out),
+ "$name: YAML::Syck serializes correctly",
+ );
+ my @syck_round = eval { YAML::Syck::Load( $syck_out ) };
+ Test::More::is( $@, '', "$name: YAML::Syck round-trips without error" );
+ Test::More::skip( "Shortcutting after failure", 2 ) if $@;
+ my $round = bless [ @syck_round ], 'CPAN::Meta::YAML';
+ Test::More::is_deeply( $round, $object, "$name: YAML::Syck round-trips correctly" );
+ }
+
+ # Test reading with YAML::Syck
+ my $syck_copy = $string;
+ my @syck_in = eval { YAML::Syck::Load( $syck_copy ) };
+ Test::More::is( $@, '', "$name: YAML::Syck loads without error" );
+ Test::More::is( $syck_copy, $string, "$name: YAML::Syck does not modify the input string" );
+ SKIP: {
+ Test::More::skip( "Shortcutting after failure", 1 ) if $@;
+ Test::More::is_deeply( \@syck_in, $object, "$name: YAML::Syck parses correctly" );
+ }
+ }
+
+ # If YAML::XS itself is available, test with it
+ SKIP: {
+ unless ( $HAVE_XS ) {
+ Test::More::skip( "Skipping YAML::XS, not available for testing", 7 );
+ }
+ if ( $options{noxs} ) {
+ Test::More::skip( "Skipping YAML::XS for known-broken feature", 7 );
+ }
+
+ # Test writing with YAML::XS
+ my $xs_out = eval { YAML::XS::Dump( @$object ) };
+ Test::More::is( $@, '', "$name: YAML::XS saves without error" );
+ SKIP: {
+ Test::More::skip( "Shortcutting after failure", 4 ) if $@;
+ Test::More::ok(
+ !!(defined $xs_out and ! ref $xs_out),
+ "$name: YAML::XS serializes correctly",
+ );
+ my @xs_round = eval { YAML::XS::Load( $xs_out ) };
+ Test::More::is( $@, '', "$name: YAML::XS round-trips without error" );
+ Test::More::skip( "Shortcutting after failure", 2 ) if $@;
+ my $round = bless [ @xs_round ], 'CPAN::Meta::YAML';
+ Test::More::is_deeply( $round, $object, "$name: YAML::XS round-trips correctly" );
+ }
+
+ # Test reading with YAML::XS
+ my $xs_copy = $string;
+ my @xs_in = eval { YAML::XS::Load( $xs_copy ) };
+ Test::More::is( $@, '', "$name: YAML::XS loads without error" );
+ Test::More::is( $xs_copy, $string, "$name: YAML::XS does not modify the input string" );
+ SKIP: {
+ Test::More::skip( "Shortcutting after failure", 1 ) if $@;
+ Test::More::is_deeply( \@xs_in, $object, "$name: YAML::XS parses correctly" );
+ }
+ }
+
+ # If YAML::Perl is available, test with it
+ SKIP: {
+ unless ( $HAVE_YAMLPERL ) {
+ Test::More::skip( "Skipping YAML::Perl, not available for testing", 7 );
+ }
+ if ( $options{noyamlperl} ) {
+ Test::More::skip( "Skipping YAML::Perl for known-broken feature", 7 );
+ }
+
+ # Test writing with YAML.pm
+ my $yamlperl_out = eval { YAML::Perl::Dump( @$object ) };
+ Test::More::is( $@, '', "$name: YAML::Perl saves without error" );
+ SKIP: {
+ Test::More::skip( "Shortcutting after failure", 4 ) if $@;
+ Test::More::ok(
+ !!(defined $yamlperl_out and ! ref $yamlperl_out),
+ "$name: YAML::Perl serializes correctly",
+ );
+ my @yamlperl_round = eval { YAML::Perl::Load( $yamlperl_out ) };
+ Test::More::is( $@, '', "$name: YAML::Perl round-trips without error" );
+ Test::More::skip( "Shortcutting after failure", 2 ) if $@;
+ my $round = bless [ @yamlperl_round ], 'CPAN::Meta::YAML';
+ Test::More::is_deeply( $round, $object, "$name: YAML::Perl round-trips correctly" );
+ }
+
+ # Test reading with YAML::Perl
+ my $yamlperl_copy = $string;
+ my @yamlperl_in = eval { YAML::Perl::Load( $yamlperl_copy ) };
+ Test::More::is( $@, '', "$name: YAML::Perl loads without error" );
+ Test::More::is( $yamlperl_copy, $string, "$name: YAML::Perl does not modify the input string" );
+ SKIP: {
+ Test::More::skip( "Shortcutting after failure", 1 ) if $@;
+ Test::More::is_deeply( \@yamlperl_in, $object, "$name: YAML::Perl parses correctly" );
+ }
+ }
+
+ # Does the string parse to the structure
+ my $yaml_copy = $string;
+ my $yaml = eval { CPAN::Meta::YAML->read_string( $yaml_copy ); };
+ Test::More::is( $@, '', "$name: CPAN::Meta::YAML parses without error" );
+ Test::More::is( $yaml_copy, $string, "$name: CPAN::Meta::YAML does not modify the input string" );
+ SKIP: {
+ Test::More::skip( "Shortcutting after failure", 2 ) if $@;
+ Test::More::isa_ok( $yaml, 'CPAN::Meta::YAML' );
+ Test::More::is_deeply( $yaml, $object, "$name: CPAN::Meta::YAML parses correctly" );
+ }
+
+ # Does the structure serialize to the string.
+ # We can't test this by direct comparison, because any
+ # whitespace or comments would be lost.
+ # So instead we parse back in.
+ my $output = eval { $object->write_string };
+ Test::More::is( $@, '', "$name: CPAN::Meta::YAML serializes without error" );
+ SKIP: {
+ Test::More::skip( "Shortcutting after failure", 5 ) if $@;
+ Test::More::ok(
+ !!(defined $output and ! ref $output),
+ "$name: CPAN::Meta::YAML serializes correctly",
+ );
+ my $roundtrip = eval { CPAN::Meta::YAML->read_string( $output ) };
+ Test::More::is( $@, '', "$name: CPAN::Meta::YAML round-trips without error" );
+ Test::More::skip( "Shortcutting after failure", 2 ) if $@;
+ Test::More::isa_ok( $roundtrip, 'CPAN::Meta::YAML' );
+ Test::More::is_deeply( $roundtrip, $object, "$name: CPAN::Meta::YAML round-trips correctly" );
+
+ # Testing the serialization
+ Test::More::skip( "Shortcutting perfect serialization tests", 1 ) unless $options{serializes};
+ Test::More::is( $output, $string, 'Serializes ok' );
+ }
+
+ # Return true as a convenience
+ return 1;
}
sub yaml_error {
- my $string = shift;
- my $like = shift;
- my $yaml = CPAN::Meta::YAML->read_string( $string );
- Test::More::is( $yaml, undef, '->read_string returns undef' );
- Test::More::ok( CPAN::Meta::YAML->errstr =~ /$like/, "Got expected error" );
- # NOTE: like() gives better diagnostics (but requires 5.005)
- # Test::More::like( $@, qr/$_[0]/, "CPAN::Meta::YAML throws expected error" );
+ my $string = shift;
+ my $like = shift;
+ my $yaml = CPAN::Meta::YAML->read_string( $string );
+ Test::More::is( $yaml, undef, '->read_string returns undef' );
+ Test::More::ok( CPAN::Meta::YAML->errstr =~ /$like/, "Got expected error" );
+ # NOTE: like() gives better diagnostics (but requires 5.005)
+ # Test::More::like( $@, qr/$_[0]/, "CPAN::Meta::YAML throws expected error" );
}
sub slurp {
- my $file = shift;
- local $/ = undef;
- open( FILE, " $file" ) or die "open($file) failed: $!";
- binmode( FILE, $_[0] ) if @_ > 0 && $] > 5.006;
- # binmode(FILE); # disable perl's BOM interpretation
- my $source = <FILE>;
- close( FILE ) or die "close($file) failed: $!";
- $source;
+ my $file = shift;
+ local $/ = undef;
+ open( FILE, " $file" ) or die "open($file) failed: $!";
+ binmode( FILE, $_[0] ) if @_ > 0 && $] > 5.006;
+ # binmode(FILE); # disable perl's BOM interpretation
+ my $source = <FILE>;
+ close( FILE ) or die "close($file) failed: $!";
+ $source;
}
sub load_ok {
- my $name = shift;
- my $file = shift;
- my $size = shift;
- Test::More::ok( -f $file, "Found $name" );
- Test::More::ok( -r $file, "Can read $name" );
- my $content = slurp( $file );
- Test::More::ok( (defined $content and ! ref $content), "Loaded $name" );
- Test::More::ok( ($size < length $content), "Content of $name larger than $size bytes" );
- return $content;
+ my $name = shift;
+ my $file = shift;
+ my $size = shift;
+ Test::More::ok( -f $file, "Found $name" );
+ Test::More::ok( -r $file, "Can read $name" );
+ my $content = slurp( $file );
+ Test::More::ok( (defined $content and ! ref $content), "Loaded $name" );
+ Test::More::ok( ($size < length $content), "Content of $name larger than $size bytes" );
+ return $content;
}
1;