diff -r 8b87ea768cb8 -r 60053dab7e2a dummy_foundation/lib/XML/XQL/Debug.pm --- a/dummy_foundation/lib/XML/XQL/Debug.pm Wed Jun 03 18:33:51 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,144 +0,0 @@ -package XML::XQL::Debug; - -# Replaces the filepath separator if necessary (i.e for Macs and Windows/DOS) -sub filename -{ - my $name = shift; - - if ((defined $^O and - $^O =~ /MSWin32/i || - $^O =~ /Windows_95/i || - $^O =~ /Windows_NT/i) || - (defined $ENV{OS} and - $ENV{OS} =~ /MSWin32/i || - $ENV{OS} =~ /Windows_95/i || - $ENV{OS} =~ /Windows_NT/i)) - { - $name =~ s!/!\\!g; - } - elsif ((defined $^O and $^O =~ /MacOS/i) || - (defined $ENV{OS} and $ENV{OS} =~ /MacOS/i)) - { - $name =~ s!/!:!g; - $name = ":$name"; - } - $name; -} - -sub dump -{ - new XML::XQL::Debug::Dump->pr (@_); -} - -sub str -{ - my $dump = new XML::XQL::Debug::Dump; - $dump->pr (@_); - $dump->{Str} =~ tr/\012/\n/; # for MacOS where '\012' != '\n' - $dump->{Str}; -} - -package XML::XQL::Debug::Dump; - -sub new -{ - my ($class, %args) = @_; - $args{Indent} = 0; - $args{Str} = ""; - bless \%args, $class; -} - -sub indent -{ - $_[0]->p (" " x $_[0]->{Indent}); -} - -sub ip -{ - my $self = shift; - $self->indent; - $self->p (@_); -} - -sub pr -{ - my ($self, $x) = @_; - if (ref($x)) - { - if (ref($x) eq "ARRAY") - { - if (@$x == 0) - { - $self->ip ("\n"); - return; - } - - $self->ip ("\n"); - $self->{Indent}++; - - for (my $i = 0; $i < @$x; $i++) - { - $self->ip ("\n"); - $self->{Indent}++; - - $self->pr ($x->[$i]); - - $self->{Indent}--; - $self->ip ("\n"); - } - $self->{Indent}--; - $self->ip ("\n"); - } - else - { - $self->ip (""); - - if ($x->isa ('XML::XQL::PrimitiveType')) - { - $self->p ($x->xql_toString); - } - else - { - $self->p ("\n"); - $self->{Indent}++; - - if ($x->isa ("XML::DOM::Node")) - { - # print node plus subnodes as XML - $self->p ($x->toString); - } - $self->p ("\n"); - - $self->{Indent}--; - $self->indent; - } - $self->p ("\n"); - } - } - elsif (defined $x) - { - $self->indent; - $self->p ("$x\n"); - } - else - { - $self->indent; - $self->p ("\n"); - } -} - -sub p -{ - my $self = shift; - - if ($self->{Dump}) - { - print @; - } - else - { - $self->{Str} .= join ("", @_); - } -} - -1;