Introduce GOVERNANCE document and empty RESOLUTIONS file.
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / Statistics.pm
index 4894cf7..f521658 100644 (file)
@@ -3,19 +3,10 @@ package DBIx::Class::Storage::Statistics;
 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
@@ -44,29 +35,21 @@ Returns a new L<DBIx::Class::Storage::Statistics> object.
 
 Sets or retrieves the filehandle used for trace/debug output.  This should
 be an L<IO::Handle> compatible object (only the
-L<< printflush|IO::Handle/$io->printflush_(_ARGS_) >> method is used). By
+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.
 
-Invoked as a 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',
 );
 
@@ -85,6 +68,8 @@ sub _build_debugfh {
     $_[0]->_defaulted_to_stderr(1);
   }
 
+  $fh->autoflush(1);
+
   $fh;
 }
 
@@ -109,7 +94,7 @@ sub print {
   local $SIG{__WARN__} = sigwarn_silencer(qr/^Wide character in print/)
     if $self->_defaulted_to_stderr;
 
-  $fh->printflush($msg);
+  $fh->print($msg);
 }
 
 =head2 silence
@@ -219,18 +204,22 @@ sub query_start {
 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;