r51529 - in /trunk/libdata-treedumper-perl: META.yml Todo TreeDumper.pm debian/changelog filters.pl try_it.pl usage.pl
jawnsy-guest at users.alioth.debian.org
jawnsy-guest at users.alioth.debian.org
Mon Jan 25 03:13:12 UTC 2010
Author: jawnsy-guest
Date: Mon Jan 25 03:13:04 2010
New Revision: 51529
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=51529
Log:
New upstream release
Modified:
trunk/libdata-treedumper-perl/META.yml
trunk/libdata-treedumper-perl/Todo
trunk/libdata-treedumper-perl/TreeDumper.pm
trunk/libdata-treedumper-perl/debian/changelog
trunk/libdata-treedumper-perl/filters.pl
trunk/libdata-treedumper-perl/try_it.pl
trunk/libdata-treedumper-perl/usage.pl
Modified: trunk/libdata-treedumper-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-treedumper-perl/META.yml?rev=51529&op=diff
==============================================================================
--- trunk/libdata-treedumper-perl/META.yml (original)
+++ trunk/libdata-treedumper-perl/META.yml Mon Jan 25 03:13:04 2010
@@ -1,19 +1,27 @@
--- #YAML:1.0
-name: Data-TreeDumper
-version: 0.35
-abstract: Improved replacement for Data::Dumper. Powerful filtering capability.
-license: ~
-author:
+name: Data-TreeDumper
+version: 0.37
+abstract: Improved replacement for Data::Dumper. Powerful filtering capability.
+author:
- Khemir Nadim ibn Hamouda. <nadim at khemir.net>
-generated_by: ExtUtils::MakeMaker version 6.44
-distribution_type: module
-requires:
- Check::ISA: 0
- Class::ISA: 0
- Devel::Size: 0.58
- Sort::Naturally: 0
- Term::Size: 0.2
- Text::Wrap: 2001.0929
+license: unknown
+distribution_type: module
+configure_requires:
+ ExtUtils::MakeMaker: 0
+build_requires:
+ ExtUtils::MakeMaker: 0
+requires:
+ Check::ISA: 0
+ Class::ISA: 0
+ Devel::Size: 0.58
+ Sort::Naturally: 0
+ Term::Size: 0.2
+ Text::Wrap: 2001.0929
+no_index:
+ directory:
+ - t
+ - inc
+generated_by: ExtUtils::MakeMaker version 6.54
meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.3.html
- version: 1.3
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
Modified: trunk/libdata-treedumper-perl/Todo
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-treedumper-perl/Todo?rev=51529&op=diff
==============================================================================
--- trunk/libdata-treedumper-perl/Todo (original)
+++ trunk/libdata-treedumper-perl/Todo Mon Jan 25 03:13:04 2010
@@ -1,25 +1,26 @@
-
+[12:03] <kent\n> nadim: $("ul").click(function(){ $(this).find("li").show() }); # theres a start
+
+
+the filter is called three times, it could be cached
+ search for $filter_sub->
+
+move all the examples to documentation and tests
+
+DTD::Diff
+ show only diff + some (settable) context
+ DHTML rendered that synchronizes collapse between trees
+
+color by type
+sort by type
+#filter by type done in D::TD::Utils
+
+DHTML
+ colorize
+ let user set links (? in a filter specific to the dhtml renderer ?)
+
check Test Builder unoverload
possibility to replace element by scalar
-
-ERROR:
- reference to reference is not dumped properly
- my $sub = sub {} ;
- my $h = {} ;
- my %tree1 = ( a=> \$h , A => \$sub ) ;
-
-Error:
- $sections = bless( [], 'Pod::POM::Node::Content' );
-
- use Data::TreeDumper ;
- print DumpTree $sections, 'Sections:' ;
-
- use Data::Dumper ;
- print Dumper $sections ;
-
-
-add hash key filter helper module
Check is Data::Visitor can be used as a base iterator
@@ -27,6 +28,8 @@
have sub modules handle the different types eg: D::TD::Type::Array; ..
Load them dynamically or at start if explicitely named
+ let's user define his own module
+ Refactor DTD and use the type filters way of handling all types including HASHES, ARRAYS, ...
warp output after generation
@@ -38,8 +41,6 @@
iterator don't get to the leaves, document it
-Add a NoSort filter to dump Ixhashed variables
-
Add more visual examples for the options
Dumper in debugger gives more information about subs
@@ -57,14 +58,17 @@
What about a tie::TreeDumper and a tie::TreeDumper::Diff?
-Refactor DTD and use the type filters way of handling all types including HASHES, ARRAYS, ...
-
Talk with Devel::Size module author to make size dumping faster
Add option name verification so we stop passing the wrong names!
+ => optional
=> dump a list of the available names
=> soundex the closes
=> take the closest and display only a warning?
+
+------------------------------
+# below are done -
+------------------------------
#Reduce the amount of times a variable is accessed
Modified: trunk/libdata-treedumper-perl/TreeDumper.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-treedumper-perl/TreeDumper.pm?rev=51529&op=diff
==============================================================================
--- trunk/libdata-treedumper-perl/TreeDumper.pm (original)
+++ trunk/libdata-treedumper-perl/TreeDumper.pm Mon Jan 25 03:13:04 2010
@@ -8,14 +8,13 @@
use Check::ISA ;
require Exporter ;
-#~ use AutoLoader qw(AUTOLOAD) ;
our @ISA = qw(Exporter) ;
our %EXPORT_TAGS = ('all' => [ qw() ]) ;
our @EXPORT_OK = ( @{$EXPORT_TAGS{'all'} } ) ;
our @EXPORT = qw(DumpTree PrintTree DumpTrees CreateChainingFilter);
-our $VERSION = '0.35' ;
+our $VERSION = '0.37' ;
my $WIN32_CONSOLE ;
@@ -293,28 +292,25 @@
#--------------------------
# filters
#--------------------------
-my ($replacement_tree, $nodes_to_display) ;
my ($filter_sub, $filter_argument) = GetFilter($setup, $level, ref $tree) ;
-#TODO: no need to filter stuff that is already displayed
-
+my ($replacement_tree, @nodes_to_display) ;
if(defined $filter_sub)
{
- ($tree_type, $replacement_tree, @$nodes_to_display)
- = $filter_sub->($tree, $level, $setup->{__DATA_PATH}, $nodes_to_display, $setup, $filter_argument) ;
+ ($tree_type, $replacement_tree, @nodes_to_display)
+ = $filter_sub->($tree, $level, $setup->{__DATA_PATH}, undef, $setup, $filter_argument) ;
$tree = $replacement_tree if(defined $replacement_tree) ;
}
else
{
- ($tree_type, undef, @$nodes_to_display) = DefaultNodesToDisplay($tree) ;
+ ($tree_type, undef, @nodes_to_display) = DefaultNodesToDisplay($tree) ;
}
return('') unless defined $tree_type ; #easiest way to prune in a filter is to return undef as type
# filters can change the name of the nodes by passing an array ref
my @node_names ;
-my @nodes_to_display = @$nodes_to_display ;
for my $node (@nodes_to_display)
{
@@ -482,7 +478,45 @@
{
$element = $$tree ;
$element_address = "$element" if defined $element ;
- $element_name = "$tree" ;
+
+ my $sub_type = '?' ;
+ for($element)
+ {
+ my $element_type = ref $element;
+
+ ($element_type eq '' || obj($element, 'HASH')) and do
+ {
+ $sub_type = 'scalar' ;
+ last ;
+ } ;
+ ($element_type eq 'HASH' || obj($element, 'HASH')) and do
+ {
+ $sub_type = 'HASH' ;
+ last ;
+ } ;
+ ($element_type eq 'ARRAY' || obj($element, 'ARRAY')) and do
+ {
+ $sub_type = 'ARRAY' ;
+ last ;
+ } ;
+ ($element_type eq 'REF' || obj($element, 'REF')) and do
+ {
+ $sub_type = 'REF' ;
+ last ;
+ } ;
+ ($element_type eq 'CODE' || obj($element, 'CODE')) and do
+ {
+ $sub_type = 'CODE' ;
+ last ;
+ } ;
+ ($element_type eq 'SCALAR' || obj($element, 'SCALAR')) and do
+ {
+ $sub_type = 'SCALAR REF' ;
+ last ;
+ } ;
+ }
+
+ $element_name = "$tree to $sub_type" ;
$element_id = $tree ;
last ;
} ;
@@ -968,7 +1002,7 @@
{
$is_terminal_node = 0 ;
$tag = 'R' ;
- $perl_address = "$element" if($setup->{DISPLAY_PERL_ADDRESS}) ;
+ $perl_address = $element if($setup->{DISPLAY_PERL_ADDRESS}) ;
last ;
} ;
@@ -1117,7 +1151,7 @@
local $setup->{__DATA_PATH} = "$setup->{__DATA_PATH}\{$element_name\}" ;
(undef, undef, @children_nodes_to_display)
- = $filter_sub->($element, $level + 1, $setup->{__DATA_PATH}, \@children_nodes_to_display, $setup, $filter_argument) ;
+ = $filter_sub->($element, $level + 1, $setup->{__DATA_PATH}, undef, $setup, $filter_argument) ;
$is_terminal_node++ unless @children_nodes_to_display ;
}
@@ -1139,7 +1173,7 @@
local $setup->{__DATA_PATH} = "$setup->{__DATA_PATH}\[$element_name\]" ;
(undef, undef, @children_nodes_to_display)
- = $filter_sub->($element, $level + 1, $setup->{__DATA_PATH}, \@children_nodes_to_display, $setup, $filter_argument) ;
+ = $filter_sub->($element, $level + 1, $setup->{__DATA_PATH}, undef, $setup, $filter_argument) ;
$is_terminal_node++ unless @children_nodes_to_display ;
}
@@ -1357,45 +1391,13 @@
#-------------------------------------------------------------------------------
-sub HashKeysSorter
-{
-my ($structure_to_dump, undef, undef, $keys) = @_ ;
-
-if('HASH' eq ref $structure_to_dump)
- {
- return('HASH', undef, nsort keys %$structure_to_dump) unless defined $keys ;
-
- my %keys ;
- for my $key (@$keys)
- {
- if('ARRAY' eq ref $key)
- {
- $keys{$key->[0]} = $key ;
- }
- else
- {
- $keys{$key} = $key ;
- }
- }
-
- return('HASH', undef, map{$keys{$_}} nsort keys %keys) ;
- }
-
-return(Data::TreeDumper::DefaultNodesToDisplay($structure_to_dump)) ;
-}
-
-#----------------------------------------------------------------------
-
sub CreateChainingFilter
{
my @filters = @_ ;
return sub
{
- my $tree = shift ;
- my $level = shift ;
- my $path = shift ;
- my $keys = shift ;
+ my ($tree, $level, $path, $keys) = @_ ;
my ($tree_type, $replacement_tree);
@@ -1461,6 +1463,7 @@
} # make %types private
#-------------------------------------------------------------------------------
+
sub GetLevelText
{
my ($element, $level, $setup) = @_ ;
@@ -1594,52 +1597,6 @@
, $subsequent_separator
, $separator_size
) ;
-}
-
-#-------------------------------------------------------------------------------
-
-sub GetCallerStack
-{
-my $level_to_dump = shift || 1_000_000;
-my $current_level = 2 ; # skip this function
-
-$level_to_dump += $current_level ; #
-
-my @stack_dump ;
-
-while ($current_level < $level_to_dump)
- {
- my ($package, $filename, $line, $subroutine, $has_args, $wantarray,
- $evaltext, $is_require, $hints, $bitmask) = eval " package DB ; caller($current_level) ;" ;
-
- last unless defined $package;
-
- my %stack ;
- $stack{$subroutine}{EVAL} = 'yes' if($subroutine eq '(eval)') ;
- $stack{$subroutine}{EVAL} = $evaltext if defined $evaltext ;
- $stack{$subroutine}{ARGS} = [@DB::args] if($has_args) ;
- $stack{$subroutine}{'REQUIRE-USE'} = 'yes' if $is_require ;
- $stack{$subroutine}{CONTEXT} = defined $wantarray ? $wantarray ? 'list' : 'scalar' : 'void' ;
- $stack{$subroutine}{CALLERS_PACKAGE} = $package ;
- $stack{$subroutine}{AT} = "$filename:$line" ;
-
- unshift @stack_dump, \%stack ;
- $current_level++;
- }
-
-# usage example
-#~ print DumpTree
- #~ (
- #~ (GetCallerStack())->[4]
- #~ , 'Stack dump:'
- #~ , DISPLAY_ADDRESS => 1
- #~ , MAX_DEPTH => 5
- #~ , DISPLAY_OBJECT_TYPE => 1
- #~ , USE_ASCII => 1
- #~ , QUOTE_VALUES => 1
- #~ ) ;
-
-return(\@stack_dump);
}
#-------------------------------------------------------------------------------
@@ -1942,7 +1899,6 @@
Data::TreeDumper can sort the tree nodes with a user defined subroutine. By default, hash keys are sorted.
FILTER => \&ReverseSort
- FILTER => \&Data::TreeDumper::HashKeysSorter
FILTER_ARGUMENT => ['your', 'arguments']
The filter routine is passed these arguments:
@@ -1955,8 +1911,7 @@
=item 3 - the path to the reference from the start of the dump.
-=item 4 - an array reference containing the keys to be displayed (see filter chaining below) last argument can be undefined and can then
-be safely ignored.
+=item 4 - an array reference containing the keys to be displayed (see L<Filter chaining>)
=item 5 - the dumpers setup
Modified: trunk/libdata-treedumper-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-treedumper-perl/debian/changelog?rev=51529&op=diff
==============================================================================
--- trunk/libdata-treedumper-perl/debian/changelog (original)
+++ trunk/libdata-treedumper-perl/debian/changelog Mon Jan 25 03:13:04 2010
@@ -1,4 +1,7 @@
-libdata-treedumper-perl (0.35-2) UNRELEASED; urgency=low
+libdata-treedumper-perl (0.37-1) UNRELEASED; urgency=low
+
+ [ Jonathan Yu ]
+ * New upstream release
[ Nathan Handler ]
* debian/watch: Update to ignore development releases.
@@ -8,7 +11,7 @@
perl (>= 5.6.0-{12,16}) with an unversioned dependency on perl (as
permitted by Debian Policy 3.8.3).
- -- Nathan Handler <nhandler at ubuntu.com> Sat, 06 Jun 2009 01:33:34 +0000
+ -- Jonathan Yu <jawnsy at cpan.org> Sun, 24 Jan 2010 21:59:45 -0500
libdata-treedumper-perl (0.35-1) unstable; urgency=low
Modified: trunk/libdata-treedumper-perl/filters.pl
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-treedumper-perl/filters.pl?rev=51529&op=diff
==============================================================================
--- trunk/libdata-treedumper-perl/filters.pl (original)
+++ trunk/libdata-treedumper-perl/filters.pl Mon Jan 25 03:13:04 2010
@@ -355,12 +355,6 @@
print DumpTree($s, 'AddStar', FILTER => \&AddStar) ;
print $dump_separator ;
-print DumpTree($s, 'HashKeysSorter+ AddStar', FILTER => CreateChainingFilter(\&Data::TreeDumper::HashKeysSorter, \&AddStar)) ;
-print $dump_separator ;
-
-print DumpTree($s, 'AddStar + HashKeysSorter', FILTER => CreateChainingFilter(\&AddStar, \&Data::TreeDumper::HashKeysSorter)) ;
-print $dump_separator ;
-
print DumpTree($s, 'RemoveA', FILTER => \&RemoveA) ;
print $dump_separator ;
Modified: trunk/libdata-treedumper-perl/try_it.pl
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-treedumper-perl/try_it.pl?rev=51529&op=diff
==============================================================================
--- trunk/libdata-treedumper-perl/try_it.pl (original)
+++ trunk/libdata-treedumper-perl/try_it.pl Mon Jan 25 03:13:04 2010
@@ -124,6 +124,5 @@
use Data::Dumper;
print Dumper \%tree ;
-#~ print $tree_dumper->Dump(\%tree, "Data:TreeDumper dump example:", INDENTATION => ' ', FILTER => \&Data::TreeDumper::HashKeysSorter) ;
print $tree_dumper->Dump(\%tree, "Data:TreeDumper dump example:", MAX_DEPTH => 1, DISPLAY_NUMBER_OF_ELEMENTS_OVER_MAX_DEPTH => 1) ;
Modified: trunk/libdata-treedumper-perl/usage.pl
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libdata-treedumper-perl/usage.pl?rev=51529&op=diff
==============================================================================
--- trunk/libdata-treedumper-perl/usage.pl (original)
+++ trunk/libdata-treedumper-perl/usage.pl Mon Jan 25 03:13:04 2010
@@ -52,7 +52,6 @@
$Data::TreeDumper::Useascii = 0 ;
$Data::TreeDumper::Maxdepth = 2 ;
-$Data::TreeDumper::Filter = \&Data::TreeDumper::HashKeysSorter ;
$Data::TreeDumper::Virtualwidth = 80 ;
print Data::TreeDumper::DumpTree($s, "Using package data") ;
@@ -66,7 +65,6 @@
$dumper->UseAnsi(1) ;
$dumper->SetMaxDepth(2) ;
$dumper->SetVirtualWidth(80) ;
-$dumper->SetFilter(\&Data::TreeDumper::HashKeysSorter) ;
print $dumper->Dump($s, "Using OO interface") ;
More information about the Pkg-perl-cvs-commits
mailing list