r64403 - in /branches/upstream/libdata-show-perl: ./ current/ current/lib/ current/lib/Data/ current/t/
carnil at users.alioth.debian.org
carnil at users.alioth.debian.org
Fri Oct 29 17:47:10 UTC 2010
Author: carnil
Date: Fri Oct 29 17:46:48 2010
New Revision: 64403
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=64403
Log:
[svn-inject] Installing original source of libdata-show-perl (0.001002)
Added:
branches/upstream/libdata-show-perl/
branches/upstream/libdata-show-perl/current/
branches/upstream/libdata-show-perl/current/Build.PL
branches/upstream/libdata-show-perl/current/Changes
branches/upstream/libdata-show-perl/current/MANIFEST
branches/upstream/libdata-show-perl/current/META.yml
branches/upstream/libdata-show-perl/current/Makefile.PL
branches/upstream/libdata-show-perl/current/README
branches/upstream/libdata-show-perl/current/lib/
branches/upstream/libdata-show-perl/current/lib/Data/
branches/upstream/libdata-show-perl/current/lib/Data/Show.pm
branches/upstream/libdata-show-perl/current/t/
branches/upstream/libdata-show-perl/current/t/00.load.t
branches/upstream/libdata-show-perl/current/t/pod.t
branches/upstream/libdata-show-perl/current/t/show.t
Added: branches/upstream/libdata-show-perl/current/Build.PL
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-show-perl/current/Build.PL?rev=64403&op=file
==============================================================================
--- branches/upstream/libdata-show-perl/current/Build.PL (added)
+++ branches/upstream/libdata-show-perl/current/Build.PL Fri Oct 29 17:46:48 2010
@@ -1,0 +1,18 @@
+use strict;
+use warnings;
+use Module::Build;
+
+my $builder = Module::Build->new(
+ module_name => 'Data::Show',
+ license => 'perl',
+ dist_author => 'Damian Conway <DCONWAY at CPAN.org>',
+ dist_version_from => 'lib/Data/Show.pm',
+ requires => {
+ 'Test::More' => 0,
+ 'Data::Dump' => 1.17,
+ 'version' => 0,
+ },
+ add_to_cleanup => [ 'Data-Show-*' ],
+);
+
+$builder->create_build_script();
Added: branches/upstream/libdata-show-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-show-perl/current/Changes?rev=64403&op=file
==============================================================================
--- branches/upstream/libdata-show-perl/current/Changes (added)
+++ branches/upstream/libdata-show-perl/current/Changes Fri Oct 29 17:46:48 2010
@@ -1,0 +1,17 @@
+Revision history for Data-Show
+
+0.0.1 Fri Mar 5 06:38:03 2010
+ Initial release.
+
+
+
+0.001001 Tue Jun 22 06:14:58 2010
+ No changes logged
+
+
+0.001002 Sun Oct 10 19:04:25 2010
+
+ - Patched distribution to track changes in Data::Dump 1.17
+ (thanks Christopher)
+
+ - Improved recognition of hashes and arrays at the end of a block
Added: branches/upstream/libdata-show-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-show-perl/current/MANIFEST?rev=64403&op=file
==============================================================================
--- branches/upstream/libdata-show-perl/current/MANIFEST (added)
+++ branches/upstream/libdata-show-perl/current/MANIFEST Fri Oct 29 17:46:48 2010
@@ -1,0 +1,10 @@
+Build.PL
+Changes
+MANIFEST
+Makefile.PL
+README
+lib/Data/Show.pm
+t/00.load.t
+t/pod.t
+t/show.t
+META.yml Module meta-data (added by MakeMaker)
Added: branches/upstream/libdata-show-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-show-perl/current/META.yml?rev=64403&op=file
==============================================================================
--- branches/upstream/libdata-show-perl/current/META.yml (added)
+++ branches/upstream/libdata-show-perl/current/META.yml Fri Oct 29 17:46:48 2010
@@ -1,0 +1,16 @@
+--- #YAML:1.0
+name: Data-Show
+version: 0.001002
+abstract: Dump data structures with name and point-of-origin
+license: ~
+author:
+ - Damian Conway <DCONWAY at CPAN.org>
+generated_by: ExtUtils::MakeMaker version 6.42
+distribution_type: module
+requires:
+ Data::Dump: 1.17
+ Test::More: 0
+ version: 0
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.3.html
+ version: 1.3
Added: branches/upstream/libdata-show-perl/current/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-show-perl/current/Makefile.PL?rev=64403&op=file
==============================================================================
--- branches/upstream/libdata-show-perl/current/Makefile.PL (added)
+++ branches/upstream/libdata-show-perl/current/Makefile.PL Fri Oct 29 17:46:48 2010
@@ -1,0 +1,18 @@
+use strict;
+use warnings;
+use ExtUtils::MakeMaker;
+
+WriteMakefile(
+ NAME => 'Data::Show',
+ AUTHOR => 'Damian Conway <DCONWAY at CPAN.org>',
+ VERSION_FROM => 'lib/Data/Show.pm',
+ ABSTRACT_FROM => 'lib/Data/Show.pm',
+ PL_FILES => {},
+ PREREQ_PM => {
+ 'Test::More' => 0,
+ 'Data::Dump' => 1.17,
+ 'version' => 0,
+ },
+ dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
+ clean => { FILES => 'Data-Show-*' },
+);
Added: branches/upstream/libdata-show-perl/current/README
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-show-perl/current/README?rev=64403&op=file
==============================================================================
--- branches/upstream/libdata-show-perl/current/README (added)
+++ branches/upstream/libdata-show-perl/current/README Fri Oct 29 17:46:48 2010
@@ -1,0 +1,33 @@
+Data::Show version 0.001002
+
+ Wrapper around Data::Dump to provide better context information
+
+
+INSTALLATION
+
+To install this module, run the following commands:
+
+ perl Makefile.PL
+ make
+ make test
+ make install
+
+Alternatively, to install with Module::Build, you can use the following commands:
+
+ perl Build.PL
+ ./Build
+ ./Build test
+ ./Build install
+
+
+DEPENDENCIES
+
+None.
+
+
+COPYRIGHT AND LICENCE
+
+Copyright (C) 2010, Damian Conway
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
Added: branches/upstream/libdata-show-perl/current/lib/Data/Show.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-show-perl/current/lib/Data/Show.pm?rev=64403&op=file
==============================================================================
--- branches/upstream/libdata-show-perl/current/lib/Data/Show.pm (added)
+++ branches/upstream/libdata-show-perl/current/lib/Data/Show.pm Fri Oct 29 17:46:48 2010
@@ -1,0 +1,328 @@
+package Data::Show;
+
+use warnings;
+use strict;
+use Data::Dump 'dump';
+use 5.010;
+
+our $VERSION = '0.001002';
+
+# Unconditionally export show()...
+sub import {
+ no strict 'refs';
+ *{caller().'::show'} = \&show;
+}
+
+
+# Useful patterns...
+
+my $IDENT = qr{
+ [^\W\d]\w* (?: :: [^\W\d]\w* )* | [_\W]
+}xms;
+
+my $CODE = qr{
+ (?&CODE_FRAGMENT)
+
+ (?(DEFINE)
+ (?<CODE_FRAGMENT>
+ (?: (?"ED)
+ | (?: q[qxr]?+ | [msy] | tr ) \s* <DELIMITED>
+ | (?&NESTED)
+ | [%\$\@] (?: (?&BRACE_DELIMS) | $IDENT )
+ | [^][{}()"'`;]
+ )++
+ )
+
+ (?<NESTED_CODE_FRAGMENT>
+ (?: (?"ED)
+ | (?: q[qxr]?+ | [msy] | tr ) \s* (?&DELIMITED)
+ | (?&NESTED)
+ | [^][{}()"'`]
+ )++
+ )
+
+ (?<QUOTED>
+ " [^\\"]++ (?: \\. [^\\"]++ )* "
+ | ' [^\\']++ (?: \\. [^\\']++ )* '
+ | ` [^\\`]++ (?: \\. [^\\`]++ )* `
+ | / [^\\/]++ (?: \\. [^\\/]++ )* /
+ | \? [^\\?]++ (?: \\. [^\\?]++ )* \?
+ )
+
+ (?<DELIMITED>
+ (?&BRACE_DELIMS)
+ | (?&PAREN_DELIMS)
+ | (?&ANGLE_DELIMS)
+ | (?&SQUARE_DELIMS)
+ | \s++ (?<DELIM_W>\w) (?:\\.|(?!\g{DELIM_W}).)*+ \g{DELIM_W}
+ | (?<DELIM_S>\S) (?:\\.|(?!\g{DELIM_S}).)*+ \g{DELIM_S}
+ )
+
+ (?<NESTED>
+ \( (?&NESTED_CODE_FRAGMENT) \)
+ | \[ (?&NESTED_CODE_FRAGMENT) \]
+ | \{ (?&NESTED_CODE_FRAGMENT) \}
+ | \< (?&NESTED_CODE_FRAGMENT) \>
+ )
+
+ (?<BRACE_DELIMS> \{ (?: [^{}] | \\. | (?&BRACE_DELIMS) )*+ \} )
+ (?<PAREN_DELIMS> \( (?: [^()] | \\. | (?&PAREN_DELIMS) )*+ \) )
+ (?<ANGLE_DELIMS> \< (?: [^<>] | \\. | (?&ANGLE_DELIMS) )*+ \> )
+ (?<SQUARE_DELIMS> \[ (?: [^][] | \\. | (?&SQUARE_DELIMS) )*+ \] )
+ )
+}xms;
+
+
+# Configuration for layout of representation...
+my $DEFAULT_INDENT = 4;
+my $MAX_WIDTH = 72;
+my $TITLE_POS = 6;
+
+# The whole point of the module...
+sub show {
+
+ # Determine context...
+ my (undef, $file, $line) = caller();
+
+ # Extract description of arglist from context...
+ my $desc;
+ if (open my $fh, '<', $file) {
+ for (1..$line-1) { readline($fh) // last }
+ $desc = do { local $/; readline $fh; };
+ }
+
+ # Trim filename and format context info and description...
+ $file =~ s{.*/}{}xms;
+ my $context = "'$file', line $line";
+ $desc //= $context;
+
+ # Isolate arg list and compress internal whitespace...
+ $desc =~ s{ \A .*? \b show \b \s* ($CODE) \s* (?: [;\}] .* | \Z ) }{$1}xms;
+ $desc =~ s{\s+}{ }gxms;
+
+ # Serialize Contextual::Return::Value objects (which break dump())...
+ for my $arg (@_) {
+ if ((ref($arg)||q{}) =~ m{\A Contextual::Return}xms) {
+ require Contextual::Return;
+ Contextual::Return::FREEZE($arg);
+ }
+ }
+
+ # Serialize argument (restoring it, if it was inappropriately flattened)...
+ my $representation;
+ given ($desc) {
+ when (m{ \A \@ $IDENT \s* \Z }xms) { $representation = dump \@_; }
+ when (m{ \A \% $IDENT \s* \Z }xms) { $representation = dump {@_};}
+ default { $representation = dump @_; }
+ }
+
+ # Indent representation wrt heading...
+ $representation =~ s{^}{ q{ } x $DEFAULT_INDENT }gxmse;
+
+ # Clean up parens around title...
+ $desc =~ s{ \A \s* (?| \( \s* (.*?) \s* \) | \s* (.*?) \s* ) \Z }
+ {( $1 )}xms;
+
+ # Insert title into header...
+ my $header = '=' x $MAX_WIDTH;
+ substr($header, $TITLE_POS, length($desc), $desc);
+
+ # Add context if it isn't just context...
+ if ($desc ne "( $context )") {
+ $context = "[ $context ]";
+ substr($header, -length($context)-$TITLE_POS, -$TITLE_POS, $context);
+ }
+
+ # Display data...
+ print {*STDERR} "$header\n\n$representation\n\n\n";
+
+ return;
+}
+
+
+1; # Magic true value required at end of module
+__END__
+
+=head1 NAME
+
+Data::Show - Dump data structures with name and point-of-origin
+
+
+=head1 VERSION
+
+This document describes Data::Show version 0.001002
+
+
+=head1 SYNOPSIS
+
+ use Data::Show;
+
+ show %foo;
+ show @bar;
+ show (
+ @bar,
+ $baz,
+ );
+ show $baz;
+ show $ref;
+ show @bar[do{1..2;}];
+ show 2*3;
+ show 'a+b';
+ show 100 * sqrt length $baz;
+ show $foo{q[;{{{]};
+
+
+=head1 DESCRIPTION
+
+This module provides a simple wrapper around the Data::Dump module.
+
+A call to C<show> data-dumps its arguments, prefaced
+by a divider line that reports the arguments and the
+file and line from which C<show()> was called.
+
+For example, the code in the L<SYNOPSIS> would produce
+something like:
+
+ ======( %foo )========================[ 'demo.pl', line 11 ]======
+
+ { foo => 1, food => 'b', foon => [3, 4, 5, 6, 7, 8, 9, 10] }
+
+
+ ======( @bar )========================[ 'demo.pl', line 12 ]======
+
+ ["b", "a", "r"]
+
+
+ ======( @bar, $baz, )=================[ 'demo.pl', line 13 ]======
+
+ ("b", "a", "r", "baz")
+
+
+ ======( $baz )========================[ 'demo.pl', line 17 ]======
+
+ "baz"
+
+
+ ======( $ref )========================[ 'demo.pl', line 18 ]======
+
+ ["b", "a", "r"]
+
+
+ ======( @bar[do{1..2;}] )=============[ 'demo.pl', line 19 ]======
+
+ ("a", "r")
+
+
+ ======( 2*3 )=========================[ 'demo.pl', line 20 ]======
+
+ 6
+
+
+ ======( 'a+b' )=======================[ 'demo.pl', line 21 ]======
+
+ "a+b"
+
+
+ ======( 100 * sqrt length $baz )======[ 'demo.pl', line 22 ]======
+
+ "173.205080756888"
+
+
+ ======( $foo{q[;{{{]} )===============[ 'demo.pl', line 23 ]======
+
+ undef
+
+
+ ======( 'foo' ~~ m/;{\/{/ )===========[ 'demo.pl', line 25 ]======
+
+ ""
+
+
+=head1 INTERFACE
+
+=over
+
+=item C<show()>
+
+This is the only subroutine provided by the module.
+It is always exported.
+
+C<show()> can be called with any number of arguments and data-dumps them
+all with a suitable header indicating the arguments' names, and the file
+and line from which C<show()> was called.
+
+C<show()> does not return a useful value.
+
+=back
+
+
+=head1 DIAGNOSTICS
+
+None, apart from those provided by Data::Dump;
+
+
+=head1 CONFIGURATION AND ENVIRONMENT
+
+Data::Show requires no configuration files or environment variables.
+
+
+=head1 DEPENDENCIES
+
+Only works under Perl 5.10 and later.
+
+Requires the Data::Dump module.
+
+
+=head1 INCOMPATIBILITIES
+
+None reported.
+
+
+=head1 BUGS AND LIMITATIONS
+
+Uses sophisticated regexes to parse out the argument list from the
+source. Hence subject to the usual limitations of this technique
+(namely, that it may get the argument list wrong occasionally).
+
+No bugs have been reported.
+
+Please report any bugs or feature requests to
+C<bug-data-show at rt.cpan.org>, or through the web interface at
+L<http://rt.cpan.org>.
+
+
+=head1 AUTHOR
+
+Damian Conway C<< <DCONWAY at CPAN.org> >>
+
+
+=head1 LICENCE AND COPYRIGHT
+
+Copyright (c) 2010, Damian Conway C<< <DCONWAY at CPAN.org> >>. All rights reserved.
+
+This module is free software; you can redistribute it and/or
+modify it under the same terms as Perl itself. See L<perlartistic>.
+
+
+=head1 DISCLAIMER OF WARRANTY
+
+BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
+EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
+ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH
+YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+NECESSARY SERVICING, REPAIR, OR CORRECTION.
+
+IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE
+LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL,
+OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
+THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
Added: branches/upstream/libdata-show-perl/current/t/00.load.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-show-perl/current/t/00.load.t?rev=64403&op=file
==============================================================================
--- branches/upstream/libdata-show-perl/current/t/00.load.t (added)
+++ branches/upstream/libdata-show-perl/current/t/00.load.t Fri Oct 29 17:46:48 2010
@@ -1,0 +1,7 @@
+use Test::More tests => 1;
+
+BEGIN {
+use_ok( 'Data::Show' );
+}
+
+diag( "Testing Data::Show $Data::Show::VERSION" );
Added: branches/upstream/libdata-show-perl/current/t/pod.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-show-perl/current/t/pod.t?rev=64403&op=file
==============================================================================
--- branches/upstream/libdata-show-perl/current/t/pod.t (added)
+++ branches/upstream/libdata-show-perl/current/t/pod.t Fri Oct 29 17:46:48 2010
@@ -1,0 +1,6 @@
+#!perl -T
+
+use Test::More;
+eval "use Test::Pod 1.14";
+plan skip_all => "Test::Pod 1.14 required for testing POD" if $@;
+all_pod_files_ok();
Added: branches/upstream/libdata-show-perl/current/t/show.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libdata-show-perl/current/t/show.t?rev=64403&op=file
==============================================================================
--- branches/upstream/libdata-show-perl/current/t/show.t (added)
+++ branches/upstream/libdata-show-perl/current/t/show.t Fri Oct 29 17:46:48 2010
@@ -1,0 +1,95 @@
+#! /usr/bin/perl -w
+use 5.010;
+
+use Data::Show; use Test::More 'no_plan';
+my $STDERR; close STDERR; open *STDERR, '>', \$STDERR or die $!;
+
+my %foo = (foo => 1, food => 2, fool => 3, foop => 4, foon => [5..10]);
+my @bar = qw<b a r>;
+my $baz = 'baz';
+my $ref = \@bar;
+
+show %foo;
+show $/;
+show @bar;
+show (
+ @bar,
+ $baz,
+);
+show $baz;
+show $ref;
+show @bar[do{1..2;}];
+show 2*3;
+show 'a+b';
+show 100 * sqrt length $baz;
+show $foo{q[;{{{]};
+do {
+ show 'foo' ~~ m/;{\/{/
+};
+
+my @expected = <DATA>;
+my @got = split "(?<=\n)", $STDERR;
+
+for my $n (0..$#expected) {
+ is $got[$n], $expected[$n] => ": $expected[$n]";
+}
+
+__DATA__
+======( %foo )=============================[ 'show.t', line 12 ]======
+
+ { foo => 1, food => 2, fool => 3, foon => [5 .. 10], foop => 4 }
+
+
+======( $/ )===============================[ 'show.t', line 13 ]======
+
+ "\n"
+
+
+======( @bar )=============================[ 'show.t', line 14 ]======
+
+ ["b", "a", "r"]
+
+
+======( @bar, $baz, )======================[ 'show.t', line 15 ]======
+
+ ("b", "a", "r", "baz")
+
+
+======( $baz )=============================[ 'show.t', line 19 ]======
+
+ "baz"
+
+
+======( $ref )=============================[ 'show.t', line 20 ]======
+
+ ["b", "a", "r"]
+
+
+======( @bar[do{1..2;}] )==================[ 'show.t', line 21 ]======
+
+ ("a", "r")
+
+
+======( 2*3 )==============================[ 'show.t', line 22 ]======
+
+ 6
+
+
+======( 'a+b' )============================[ 'show.t', line 23 ]======
+
+ "a+b"
+
+
+======( 100 * sqrt length $baz )===========[ 'show.t', line 24 ]======
+
+ "173.205080756888"
+
+
+======( $foo{q[;{{{]} )====================[ 'show.t', line 25 ]======
+
+ undef
+
+
+======( 'foo' ~~ m/;{\/{/ )================[ 'show.t', line 27 ]======
+
+ ""
More information about the Pkg-perl-cvs-commits
mailing list