/usr/share/perl5/Validation/Class/Mixin.pm is in libvalidation-class-perl 7.900057-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | # Mixin Object for Validation::Class Classes
# Validation::Class::Mixin provides functions for processing for mixin objects
# and provides accessors for mixin directives. This class is derived from the
# L<Validation::Class::Mapping> class.
package Validation::Class::Mixin;
use strict;
use warnings;
use Validation::Class::Directives;
use Validation::Class::Errors;
use Validation::Class::Util '!has';
use Carp 'confess';
our $VERSION = '7.900057'; # VERSION
use base 'Validation::Class::Mapping';
my $directives = Validation::Class::Directives->new;
foreach my $directive ($directives->values) {
# create accessors from default configuration (once)
if ($directive->mixin) {
my $name = $directive->name;
next if __PACKAGE__->can($name);
# errors object
if ($name eq 'errors') {
my %spec =
($name => sub { Validation::Class::Errors->new });
Validation::Class::Util::has(%spec);
}
# everything else
else {
my %spec =
($name => sub { undef });
Validation::Class::Util::has(%spec);
}
}
}
sub new {
my $class = shift;
my $config = $class->build_args(@_);
confess "Can't create a new mixin object without a name attribute"
unless $config->{name}
;
my $self = bless {}, $class;
$self->add($config);
return $self;
}
1;
|