aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Reaction/Meta/InterfaceModel/Action/Class.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Reaction/Meta/InterfaceModel/Action/Class.pm')
-rw-r--r--lib/Reaction/Meta/InterfaceModel/Action/Class.pm29
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;