Filename | /opt/perl-5.18.1/lib/site_perl/5.18.1/darwin-thread-multi-2level/Moose/Meta/Role/Application.pm |
Statements | Executed 12 statements in 761µs |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
1 | 1 | 1 | 11µs | 11µs | BEGIN@2 | Moose::Meta::Role::Application::
1 | 1 | 1 | 10µs | 509µs | BEGIN@11 | Moose::Meta::Role::Application::
1 | 1 | 1 | 9µs | 14µs | BEGIN@10 | Moose::Meta::Role::Application::
1 | 1 | 1 | 8µs | 24µs | BEGIN@9 | Moose::Meta::Role::Application::
0 | 0 | 0 | 0s | 0s | __ANON__[:16] | Moose::Meta::Role::Application::
0 | 0 | 0 | 0s | 0s | __ANON__[:23] | Moose::Meta::Role::Application::
0 | 0 | 0 | 0s | 0s | apply | Moose::Meta::Role::Application::
0 | 0 | 0 | 0s | 0s | apply_after_method_modifiers | Moose::Meta::Role::Application::
0 | 0 | 0 | 0s | 0s | apply_around_method_modifiers | Moose::Meta::Role::Application::
0 | 0 | 0 | 0s | 0s | apply_attributes | Moose::Meta::Role::Application::
0 | 0 | 0 | 0s | 0s | apply_before_method_modifiers | Moose::Meta::Role::Application::
0 | 0 | 0 | 0s | 0s | apply_method_modifiers | Moose::Meta::Role::Application::
0 | 0 | 0 | 0s | 0s | apply_methods | Moose::Meta::Role::Application::
0 | 0 | 0 | 0s | 0s | apply_override_method_modifiers | Moose::Meta::Role::Application::
0 | 0 | 0 | 0s | 0s | check_required_attributes | Moose::Meta::Role::Application::
0 | 0 | 0 | 0s | 0s | check_required_methods | Moose::Meta::Role::Application::
0 | 0 | 0 | 0s | 0s | check_role_exclusions | Moose::Meta::Role::Application::
0 | 0 | 0 | 0s | 0s | is_aliased_method | Moose::Meta::Role::Application::
0 | 0 | 0 | 0s | 0s | is_method_aliased | Moose::Meta::Role::Application::
0 | 0 | 0 | 0s | 0s | is_method_excluded | Moose::Meta::Role::Application::
0 | 0 | 0 | 0s | 0s | new | Moose::Meta::Role::Application::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package 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 | ||||
3 | 1 | 6µs | $Moose::Meta::Role::Application::AUTHORITY = 'cpan:STEVAN'; | ||
4 | 1 | 48µs | 1 | 11µs | } # spent 11µs making 1 call to Moose::Meta::Role::Application::BEGIN@2 |
5 | { | ||||
6 | 2 | 1µs | $Moose::Meta::Role::Application::VERSION = '2.1005'; | ||
7 | } | ||||
8 | |||||
9 | 2 | 31µs | 2 | 39µ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 # spent 24µs making 1 call to Moose::Meta::Role::Application::BEGIN@9
# spent 15µs making 1 call to strict::import |
10 | 2 | 27µs | 2 | 18µ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 # spent 14µs making 1 call to Moose::Meta::Role::Application::BEGIN@10
# spent 4µs making 1 call to warnings::import |
11 | 2 | 623µs | 2 | 1.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 # 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 { [] }, | ||||
17 | 1 | 10µs | 3 | 425µ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 { {} }, | ||||
24 | 1 | 6µs | 3 | 406µ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 | |||||
27 | sub new { | ||||
28 | my ($class, %params) = @_; | ||||
29 | $class->_new(\%params); | ||||
30 | } | ||||
31 | |||||
32 | sub 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 | |||||
40 | sub is_method_aliased { | ||||
41 | my ($self, $method_name) = @_; | ||||
42 | exists $self->get_method_aliases->{$method_name} ? 1 : 0 | ||||
43 | } | ||||
44 | |||||
45 | sub 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 | |||||
51 | sub 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 | |||||
68 | sub check_role_exclusions { Carp::croak "Abstract Method" } | ||||
69 | sub check_required_methods { Carp::croak "Abstract Method" } | ||||
70 | sub check_required_attributes { Carp::croak "Abstract Method" } | ||||
71 | |||||
72 | sub apply_attributes { Carp::croak "Abstract Method" } | ||||
73 | sub apply_methods { Carp::croak "Abstract Method" } | ||||
74 | sub apply_override_method_modifiers { Carp::croak "Abstract Method" } | ||||
75 | sub apply_method_modifiers { Carp::croak "Abstract Method" } | ||||
76 | |||||
77 | sub apply_before_method_modifiers { (shift)->apply_method_modifiers('before' => @_) } | ||||
78 | sub apply_around_method_modifiers { (shift)->apply_method_modifiers('around' => @_) } | ||||
79 | sub apply_after_method_modifiers { (shift)->apply_method_modifiers('after' => @_) } | ||||
80 | |||||
81 | 1 | 9µs | 1; | ||
82 | |||||
83 | # ABSTRACT: A base class for role application | ||||
84 | |||||
85 | __END__ |