/usr/share/perl5/RDF/DOAP/Person.pm is in librdf-doap-perl 0.100-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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 | package RDF::DOAP::Person;
our $AUTHORITY = 'cpan:TOBYINK';
our $VERSION = '0.100';
use Moose;
extends qw(RDF::DOAP::Resource);
use overload
q[""] => sub { shift->to_string },
fallback => 1;
use RDF::DOAP::Types -types;
use RDF::DOAP::Utils -traits;
use RDF::Trine::Namespace qw(rdf rdfs owl xsd);
my $foaf = 'RDF::Trine::Namespace'->new('http://xmlns.com/foaf/0.1/');
has $_ => (
traits => [ WithURI ],
is => 'ro',
isa => String,
coerce => 1,
uri => $foaf->$_,
) for qw( name nick );
has mbox => (
traits => [ WithURI ],
is => 'ro',
isa => ArrayRef[Identifier],
coerce => 1,
uri => $foaf->mbox,
multi => 1,
lazy => 1,
builder => '_build_mbox',
);
has cpanid => (
is => 'ro',
isa => Maybe[Str],
lazy => 1,
builder => '_build_cpanid',
);
sub _build_cpanid
{
my $self = shift;
return unless $self->has_rdf_about;
return unless $self->rdf_about->is_resource;
$self->rdf_about->uri =~ m{^http://purl\.org/NET/cpan-uri/person/(\w+)$}
and return $1;
return;
}
sub _build_mbox
{
my $self = shift;
return [sprintf('mailto:%s@cpan.org', $self->cpanid)]
if defined $self->cpanid;
return [];
}
sub to_string
{
my $self = shift;
return $self->name
|| $self->nick
|| $self->cpanid
|| ($self->mbox && $self->mbox->[0]->uri)
|| ($self->rdf_about && $self->rdf_about->uri)
|| 'Anonymous'
if @_ && $_[0] eq 'compact';
my @parts;
if ($self->name)
{
push @parts, $self->name;
if ($self->cpanid)
{
push @parts, sprintf('(%s)', uc $self->cpanid);
}
}
else
{
my $nick = uc($self->nick) || uc($self->cpanid);
push @parts, $nick if $nick;
}
for my $mbox (@{$self->mbox})
{
if ($mbox and $mbox->uri =~ /^mailto:(.+)$/)
{
push @parts, "<$1>";
last;
}
}
for my $mbox (@{$self->mbox})
{
push @parts, $mbox if !@parts;
}
push @parts, $self->rdf_about if !@parts && $self->has_rdf_about;
join(" ", grep !!$_, @parts) or 'Anonymous';
}
1;
|