Merge branch 'execute_exception' of https://github.com/cventers/catalyst-runtime...
John Napiorkowski [Wed, 8 Jun 2016 14:37:01 +0000 (09:37 -0500)]
1  2 
lib/Catalyst.pm

diff --combined lib/Catalyst.pm
@@@ -81,8 -81,6 +81,8 @@@ sub _build_request_constructor_args 
  
  sub composed_request_class {
    my $class = shift;
 +  return $class->_composed_request_class if $class->_composed_request_class;
 +
    my @traits = (@{$class->request_class_traits||[]}, @{$class->config->{request_class_traits}||[]});
  
    # For each trait listed, figure out what the namespace is.  First we try the $trait
      Class::Load::load_first_existing_class($_, $class.'::'.$trait_ns.'::'. $_, 'Catalyst::'.$trait_ns.'::'.$_)
    } @traits;
  
 -  return $class->_composed_request_class ||
 -    $class->_composed_request_class(Moose::Util::with_traits($class->request_class, @normalized_traits));
 +  if ($class->debug && scalar(@normalized_traits)) {
 +      my $column_width = Catalyst::Utils::term_width() - 6;
 +      my $t = Text::SimpleTable->new($column_width);
 +      $t->row($_) for @normalized_traits;
 +      $class->log->debug( "Composed Request Class Traits:\n" . $t->draw . "\n" );
 +  }
 +
 +  return $class->_composed_request_class(Moose::Util::with_traits($class->request_class, @normalized_traits));
  }
  
  has response => (
@@@ -123,8 -115,6 +123,8 @@@ sub _build_response_constructor_args 
  
  sub composed_response_class {
    my $class = shift;
 +  return $class->_composed_response_class if $class->_composed_response_class;
 +  
    my @traits = (@{$class->response_class_traits||[]}, @{$class->config->{response_class_traits}||[]});
  
    my $trait_ns = 'TraitFor::Response';
      Class::Load::load_first_existing_class($_, $class.'::'.$trait_ns.'::'. $_, 'Catalyst::'.$trait_ns.'::'.$_)
    } @traits;
  
 -  return $class->_composed_response_class ||
 -    $class->_composed_response_class(Moose::Util::with_traits($class->response_class, @normalized_traits));
 +  if ($class->debug && scalar(@normalized_traits)) {
 +      my $column_width = Catalyst::Utils::term_width() - 6;
 +      my $t = Text::SimpleTable->new($column_width);
 +      $t->row($_) for @normalized_traits;
 +      $class->log->debug( "Composed Response Class Traits:\n" . $t->draw . "\n" );
 +  }
 +
 +  return $class->_composed_response_class(Moose::Util::with_traits($class->response_class, @normalized_traits));
  }
  
  has namespace => (is => 'rw');
@@@ -182,8 -166,6 +182,8 @@@ __PACKAGE__->stats_class('Catalyst::Sta
  
  sub composed_stats_class {
    my $class = shift;
 +  return $class->_composed_stats_class if $class->_composed_stats_class;
 +
    my @traits = (@{$class->stats_class_traits||[]}, @{$class->config->{stats_class_traits}||[]});
  
    my $trait_ns = 'TraitFor::Stats';
      Class::Load::load_first_existing_class($_, $class.'::'.$trait_ns.'::'. $_, 'Catalyst::'.$trait_ns.'::'.$_)
    } @traits;
  
 -  return $class->_composed_stats_class ||
 -    $class->_composed_stats_class(Moose::Util::with_traits($class->stats_class, @normalized_traits));
 +  if ($class->debug && scalar(@normalized_traits)) {
 +      my $column_width = Catalyst::Utils::term_width() - 6;
 +      my $t = Text::SimpleTable->new($column_width);
 +      $t->row($_) for @normalized_traits;
 +      $class->log->debug( "Composed Stats Class Traits:\n" . $t->draw . "\n" );
 +  }
 +
 +  return $class->_composed_stats_class(Moose::Util::with_traits($class->stats_class, @normalized_traits));
  }
  
  __PACKAGE__->_encode_check(Encode::FB_CROAK | Encode::LEAVE_SRC);
      $class->setup_encoding();
      $class->setup_middleware();
  
 +    # call these so we pre setup the composed classes
 +    $class->composed_request_class;
 +    $class->composed_response_class;
 +    $class->composed_stats_class;
 +
      # Initialize our data structure
      $class->components( {} );
  
@@@ -4857,6 -4828,8 +4857,8 @@@ Caelum: Rafael Kitover <rkitover@io.com
  
  chansen: Christian Hansen
  
+ Chase Venters C<chase.venters@gmail.com>
  chicks: Christopher Hicks
  
  Chisel Wright C<pause@herlpacker.co.uk>