← Index
NYTProf Performance Profile   « line view »
For fastest.pl
  Run on Fri Jan 31 20:48:16 2014
Reported on Fri Jan 31 20:49:41 2014

Filename/opt/perl-5.18.1/lib/site_perl/5.18.1/darwin-thread-multi-2level/Moose/Meta/Role/Application.pm
StatementsExecuted 12 statements in 761µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11111µs11µsMoose::Meta::Role::Application::::BEGIN@2Moose::Meta::Role::Application::BEGIN@2
11110µs509µsMoose::Meta::Role::Application::::BEGIN@11Moose::Meta::Role::Application::BEGIN@11
1119µs14µsMoose::Meta::Role::Application::::BEGIN@10Moose::Meta::Role::Application::BEGIN@10
1118µs24µsMoose::Meta::Role::Application::::BEGIN@9Moose::Meta::Role::Application::BEGIN@9
0000s0sMoose::Meta::Role::Application::::__ANON__[:16]Moose::Meta::Role::Application::__ANON__[:16]
0000s0sMoose::Meta::Role::Application::::__ANON__[:23]Moose::Meta::Role::Application::__ANON__[:23]
0000s0sMoose::Meta::Role::Application::::applyMoose::Meta::Role::Application::apply
0000s0sMoose::Meta::Role::Application::::apply_after_method_modifiersMoose::Meta::Role::Application::apply_after_method_modifiers
0000s0sMoose::Meta::Role::Application::::apply_around_method_modifiersMoose::Meta::Role::Application::apply_around_method_modifiers
0000s0sMoose::Meta::Role::Application::::apply_attributesMoose::Meta::Role::Application::apply_attributes
0000s0sMoose::Meta::Role::Application::::apply_before_method_modifiersMoose::Meta::Role::Application::apply_before_method_modifiers
0000s0sMoose::Meta::Role::Application::::apply_method_modifiersMoose::Meta::Role::Application::apply_method_modifiers
0000s0sMoose::Meta::Role::Application::::apply_methodsMoose::Meta::Role::Application::apply_methods
0000s0sMoose::Meta::Role::Application::::apply_override_method_modifiersMoose::Meta::Role::Application::apply_override_method_modifiers
0000s0sMoose::Meta::Role::Application::::check_required_attributesMoose::Meta::Role::Application::check_required_attributes
0000s0sMoose::Meta::Role::Application::::check_required_methodsMoose::Meta::Role::Application::check_required_methods
0000s0sMoose::Meta::Role::Application::::check_role_exclusionsMoose::Meta::Role::Application::check_role_exclusions
0000s0sMoose::Meta::Role::Application::::is_aliased_methodMoose::Meta::Role::Application::is_aliased_method
0000s0sMoose::Meta::Role::Application::::is_method_aliasedMoose::Meta::Role::Application::is_method_aliased
0000s0sMoose::Meta::Role::Application::::is_method_excludedMoose::Meta::Role::Application::is_method_excluded
0000s0sMoose::Meta::Role::Application::::newMoose::Meta::Role::Application::new
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Moose::Meta::Role::Application;
2
# spent 11µs within Moose::Meta::Role::Application::BEGIN@2 which was called: # once (11µs+0s) by Moose::BEGIN@37 at line 4
BEGIN {
316µs $Moose::Meta::Role::Application::AUTHORITY = 'cpan:STEVAN';
4148µs111µs}
# spent 11µs making 1 call to Moose::Meta::Role::Application::BEGIN@2
5{
621µs $Moose::Meta::Role::Application::VERSION = '2.1005';
7}
8
9231µs239µs
# spent 24µs (8+15) within Moose::Meta::Role::Application::BEGIN@9 which was called: # once (8µs+15µs) by Moose::BEGIN@37 at line 9
use strict;
# spent 24µs making 1 call to Moose::Meta::Role::Application::BEGIN@9 # spent 15µs making 1 call to strict::import
10227µs218µs
# spent 14µs (9+4) within Moose::Meta::Role::Application::BEGIN@10 which was called: # once (9µs+4µs) by Moose::BEGIN@37 at line 10
use warnings;
# spent 14µs making 1 call to Moose::Meta::Role::Application::BEGIN@10 # spent 4µs making 1 call to warnings::import
112623µs21.01ms
# spent 509µs (10+500) within Moose::Meta::Role::Application::BEGIN@11 which was called: # once (10µs+500µs) by Moose::BEGIN@37 at line 11
use metaclass;
# spent 509µs making 1 call to Moose::Meta::Role::Application::BEGIN@11 # spent 500µs making 1 call to metaclass::import
12
13__PACKAGE__->meta->add_attribute('method_exclusions' => (
14 init_arg => '-excludes',
15 reader => 'get_method_exclusions',
16 default => sub { [] },
17110µs3425µs Class::MOP::_definition_context(),
# spent 397µs making 1 call to Class::MOP::Mixin::HasAttributes::add_attribute # spent 22µs making 1 call to Moose::Meta::Role::Application::meta # spent 7µs making 1 call to Class::MOP::_definition_context
18));
19
20__PACKAGE__->meta->add_attribute('method_aliases' => (
21 init_arg => '-alias',
22 reader => 'get_method_aliases',
23 default => sub { {} },
2416µs3406µs Class::MOP::_definition_context(),
# spent 388µs making 1 call to Class::MOP::Mixin::HasAttributes::add_attribute # spent 12µs making 1 call to Moose::Meta::Role::Application::meta # spent 6µs making 1 call to Class::MOP::_definition_context
25));
26
27sub new {
28 my ($class, %params) = @_;
29 $class->_new(\%params);
30}
31
32sub is_method_excluded {
33 my ($self, $method_name) = @_;
34 foreach (@{$self->get_method_exclusions}) {
35 return 1 if $_ eq $method_name;
36 }
37 return 0;
38}
39
40sub is_method_aliased {
41 my ($self, $method_name) = @_;
42 exists $self->get_method_aliases->{$method_name} ? 1 : 0
43}
44
45sub is_aliased_method {
46 my ($self, $method_name) = @_;
47 my %aliased_names = reverse %{$self->get_method_aliases};
48 exists $aliased_names{$method_name} ? 1 : 0;
49}
50
51sub apply {
52 my $self = shift;
53
54 $self->check_role_exclusions(@_);
55 $self->check_required_methods(@_);
56 $self->check_required_attributes(@_);
57
58 $self->apply_attributes(@_);
59 $self->apply_methods(@_);
60
61 $self->apply_override_method_modifiers(@_);
62
63 $self->apply_before_method_modifiers(@_);
64 $self->apply_around_method_modifiers(@_);
65 $self->apply_after_method_modifiers(@_);
66}
67
68sub check_role_exclusions { Carp::croak "Abstract Method" }
69sub check_required_methods { Carp::croak "Abstract Method" }
70sub check_required_attributes { Carp::croak "Abstract Method" }
71
72sub apply_attributes { Carp::croak "Abstract Method" }
73sub apply_methods { Carp::croak "Abstract Method" }
74sub apply_override_method_modifiers { Carp::croak "Abstract Method" }
75sub apply_method_modifiers { Carp::croak "Abstract Method" }
76
77sub apply_before_method_modifiers { (shift)->apply_method_modifiers('before' => @_) }
78sub apply_around_method_modifiers { (shift)->apply_method_modifiers('around' => @_) }
79sub apply_after_method_modifiers { (shift)->apply_method_modifiers('after' => @_) }
80
8119µs1;
82
83# ABSTRACT: A base class for role application
84
85__END__