use strict;
use warnings;
-# DO NOT edit away without talking to riba first, he will just put it back
-# BEGIN pre-Moo2 import block
-BEGIN {
- my $initial_fatal_bits = (${^WARNING_BITS}||'') & $warnings::DeadBits{all};
- local $ENV{PERL_STRICTURES_EXTRA} = 0;
- require Moo; Moo->import;
- ${^WARNING_BITS} &= ( $initial_fatal_bits | ~ $warnings::DeadBits{all} );
-}
-# END pre-Moo2 import block
-
-extends 'DBIx::Class';
use DBIx::Class::_Util qw(sigwarn_silencer qsub);
+use IO::Handle ();
+use Moo;
+extends 'DBIx::Class';
use namespace::clean;
=head1 NAME
=head2 debugfh
Sets or retrieves the filehandle used for trace/debug output. This should
-be an IO::Handle compatible object (only the C<print> method is used). Initially
-should be set to STDERR - although see information on the
-L<DBIC_TRACE> environment variable.
+be an L<IO::Handle> compatible object (only the
+L<< print|IO::Handle/METHODS >> method is used). By
+default it is initially set to STDERR - although see discussion of the
+L<DBIC_TRACE|DBIx::Class::Storage/DBIC_TRACE> environment variable.
-As getter it will lazily open a filehandle for you if one is not already set.
+Invoked as a getter it will lazily open a filehandle and set it to
+L<< autoflush|perlvar/HANDLE->autoflush( EXPR ) >> (if one is not
+already set).
=cut
-# FIXME - there ought to be a way to fold this into _debugfh itself
-# having the undef re-trigger the builder (or better yet a default
-# which can be folded in as a qsub)
-sub debugfh {
- my $self = shift;
-
- return $self->_debugfh(@_) if @_;
- $self->_debugfh || $self->_build_debugfh;
-}
-
-has _debugfh => (
+has debugfh => (
is => 'rw',
lazy => 1,
- trigger => qsub '$_[0]->_defaulted_to_stderr(undef)',
+ trigger => qsub '$_[0]->_defaulted_to_stderr(undef); $_[0]->_clear_debugfh unless $_[1];',
+ clearer => '_clear_debugfh',
builder => '_build_debugfh',
);
$_[0]->_defaulted_to_stderr(1);
}
+ $fh->autoflush(1);
+
$fh;
}
local $SIG{__WARN__} = sigwarn_silencer(qr/^Wide character in print/)
if $self->_defaulted_to_stderr;
- $fh->printflush($msg);
+ $fh->print($msg);
}
=head2 silence
Called when a query finishes executing. Has the same arguments as query_start.
=cut
+
sub query_end {
my ($self, $string) = @_;
}
-1;
+=head1 FURTHER QUESTIONS?
-=head1 AUTHOR AND CONTRIBUTORS
+Check the list of L<additional DBIC resources|DBIx::Class/GETTING HELP/SUPPORT>.
-See L<AUTHOR|DBIx::Class/AUTHOR> and L<CONTRIBUTORS|DBIx::Class/CONTRIBUTORS> in DBIx::Class
+=head1 COPYRIGHT AND LICENSE
-=head1 LICENSE
-
-You may distribute this code under the same terms as Perl itself.
+This module is free software L<copyright|DBIx::Class/COPYRIGHT AND LICENSE>
+by the L<DBIx::Class (DBIC) authors|DBIx::Class/AUTHORS>. You can
+redistribute it and/or modify it under the same terms as the
+L<DBIx::Class library|DBIx::Class/COPYRIGHT AND LICENSE>.
=cut
+
+1;