Software-Security-Policy
view release on metacpan or search on metacpan
lib/Software/Security/Policy/Individual.pm view on Meta::CPAN
use strict;
use warnings;
package Software::Security::Policy::Individual;
our $VERSION = '0.11'; # VERSION
use parent 'Software::Security::Policy';
# ABSTRACT: The Individual Security Policy
use Data::Section -setup => { header_re => qr/\A__([^_]+)__\Z/ };
use Text::Template ();
sub name { 'individual' }
sub new {
my ($class, $arg) = @_;
Carp::croak "no maintainer is specified" unless $arg->{maintainer};
bless $arg => $class;
}
sub url { (defined $_[0]->{url} ? $_[0]->{url} :
(defined $_[0]->{git_url} ? $_[0]->{git_url} :
undef)) }
sub git_url { (defined $_[0]->{git_url} ? $_[0]->{git_url} :
(defined $_[0]->{url} ? $_[0]->{url} :
undef)) }
sub perl_support_years { $_[0]->{perl_support_years} };
sub minimum_perl_version { $_[0]->{minimum_perl_version} }
sub timeframe {
return $_[0]->{timeframe} if defined $_[0]->{timeframe};
return $_[0]->{timeframe_quantity} . ' ' . $_[0]->{timeframe_units}
if defined $_[0]->{timeframe_quantity} &&
defined $_[0]->{timeframe_units};
return '5 days';
}
sub maintainer { $_[0]->{maintainer} }
sub _dotless_maintainer {
my $maintainer = $_[0]->maintainer;
$maintainer =~ s/\.$//;
return $maintainer;
}
sub report_url { $_[0]->{report_url} }
sub program { $_[0]->{program} || $_[0]->{Program} || 'this program' }
sub Program { $_[0]->{Program} || $_[0]->{program} || 'This program' }
sub summary { shift->_fill_in('SUMMARY') }
sub security_policy { shift->_fill_in('SECURITY-POLICY') }
sub fulltext {
my ($self) = @_;
return join "\n", $self->summary, $self->security_policy;
}
sub version {
my ($self) = @_;
my $pkg = ref $self ? ref $self : $self;
$pkg =~ s/.+:://;
my (undef, @vparts) = split /_/, $pkg;
return unless @vparts;
( run in 1.030 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )