my $args = shift;
my $clear_line = $args->{clear_line} || "\r\e[J";
- my $executing = $args->{executing} || eval { require Term::ANSIColor } ? do {
- my $c = \&Term::ANSIColor::color;
- $c->('blink white on_black') . 'EXECUTING...' . $c->('reset');;
- } : 'EXECUTING...';
+ my $executing = $args->{executing} || (
+ eval { require Term::ANSIColor } ? do {
+ my $c = \&Term::ANSIColor::color;
+ $c->('blink white on_black') . 'EXECUTING...' . $c->('reset');
+ } : 'EXECUTING...'
+ );
my $show_progress = $args->{show_progress};
my $squash_repeats = $args->{squash_repeats};
my $formatted;
if ($self->squash_repeats && $self->_last_sql eq $string) {
my ( $l, $r ) = @{ $sqlat->placeholder_surround };
- $formatted = '... : ' . join(', ', map "$l$_$r", @$bindargs) . "\n";
+ $formatted = '... : ' . join(', ', map "$l$_$r", @$bindargs)
} else {
$self->_last_sql($string);
- $formatted = $sqlat->format($string, $bindargs) . "\n";
- $formatted = "$formatted: " . join ', ', @{$bindargs}
+ $formatted = $sqlat->format($string, $bindargs);
+ $formatted = "$formatted : " . join ', ', @{$bindargs}
unless $use_placeholders;
}
=head1 SYNOPSIS
- package MyApp::Schema;
+ DBIC_TRACE_PROFILE=~/dbic.json perl -Ilib ./foo.pl
- use parent 'DBIx::Class::Schema';
+Where dbic.json contains:
- use DBIx::Class::Storage::Debug::PrettyPrint;
+ {
+ "profile":"console",
+ "show_progress":1,
+ "squash_repeats":1
+ }
+
+=head1 METHODS
- __PACKAGE__->load_namespaces;
+=head2 new
my $pp = DBIx::Class::Storage::Debug::PrettyPrint->new({
- profile => 'console',
+ show_progress => 1, # tries it's best to make it clear that a SQL
+ # statement is still running
+ executing => '...', # the string that is added to the end of SQL
+ # if show_progress is on. You probably don't
+ # need to set this
+ clear_line => '\r^[[J', # the string used to erase the string added
+ # to SQL if show_progress is on. Again, the
+ # default is probably good enough.
+
+ squash_repeats => 1, # set to true to make repeated SQL queries
+ # be ellided and only show the new bind params
+ # any other args are passed through directly to SQL::Abstract::Tree
});
- sub connection {
- my $self = shift;
-
- my $ret = $self->next::method(@_);
-
- $self->storage->debugobj($pp);
-
- $ret
- }