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