diff options
Diffstat (limited to 'lib/Reaction/Meta/InterfaceModel/Action/Class.pm')
-rw-r--r-- | lib/Reaction/Meta/InterfaceModel/Action/Class.pm | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/lib/Reaction/Meta/InterfaceModel/Action/Class.pm b/lib/Reaction/Meta/InterfaceModel/Action/Class.pm index c09bdb6..5937573 100644 --- a/lib/Reaction/Meta/InterfaceModel/Action/Class.pm +++ b/lib/Reaction/Meta/InterfaceModel/Action/Class.pm @@ -3,24 +3,25 @@ package Reaction::Meta::InterfaceModel::Action::Class; use Reaction::Class; use aliased 'Reaction::Meta::InterfaceModel::Action::ParameterAttribute'; -class Class is 'Reaction::Meta::Class', which { +use namespace::clean -except => [ qw(meta) ]; +extends 'Reaction::Meta::Class'; - implements new => as { shift->SUPER::new(@_) }; +sub new { shift->SUPER::new(@_) }; - around initialize => sub { - my $super = shift; - my $class = shift; - my $pkg = shift; - $super->($class, $pkg, attribute_metaclass => ParameterAttribute, @_); - }; +around initialize => sub { + my $super = shift; + my $class = shift; + my $pkg = shift; + $super->($class, $pkg, attribute_metaclass => ParameterAttribute, @_); +}; +sub parameter_attributes { + my $self = shift; + return grep { $_->isa(ParameterAttribute) } + $self->compute_all_applicable_attributes; +}; - implements parameter_attributes => as { - my $self = shift; - return grep { $_->isa(ParameterAttribute) } - $self->compute_all_applicable_attributes; - }; +__PACKAGE__->meta->make_immutable; -}; 1; |