| Server IP : 170.10.161.225 / Your IP : 216.73.216.78 Web Server : Apache System : Linux vps103298.mylogin.co 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : calvet ( 273824) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : ON Directory : /lib64/perl5/vendor_perl/Moose/Exception/Role/ |
Upload File : |
package Moose::Exception::Role::EitherAttributeOrAttributeName;
our $VERSION = '2.2011';
use Moose::Util 'throw_exception';
use Moose::Role;
has 'attribute_name' => (
is => 'ro',
isa => 'Str',
lazy_build => 1
);
has 'attribute' => (
is => 'ro',
isa => 'Class::MOP::Attribute',
predicate => 'has_attribute'
);
has 'params' => (
is => 'ro',
isa => 'HashRef',
predicate => 'has_params',
);
sub _build_attribute_name {
my $self = shift;
if( !$self->has_attribute )
{
throw_exception("NeitherAttributeNorAttributeNameIsGiven");
}
return $self->attribute->name;
}
after "BUILD" => sub {
my $self = $_[0];
if( $self->has_attribute_name &&
$self->has_attribute &&
( $self->attribute->name ne $self->attribute_name ) )
{
throw_exception( AttributeNamesDoNotMatch => attribute_name => $self->attribute_name,
attribute => $self->attribute
);
}
};
1;