Atompub
view release on metacpan or search on metacpan
lib/Atompub/MediaType.pm view on Meta::CPAN
feed => 'application/atom+xml;type=feed',
service => 'application/atomsvc+xml',
categories => 'application/atomcat+xml',
);
__PACKAGE__->mk_accessors(qw(type subtype parameters));
use overload (
q{""} => \&as_string,
eq => \&is_a,
ne => \&is_not_a,
fallback => 1,
);
sub new {
my($class, $arg) = @_;
my $media_type = $ATOM_TYPE{$arg} || $arg or return;
my($type, $subtype, $param) = split m{[/;]}, $media_type;
bless {
type => $type,
subtype => $subtype,
lib/Atompub/MediaType.pm view on Meta::CPAN
if ($test->subtype eq $test->subtype_major) { # ex. application/xml
return 0 unless $test->subtype_major eq $self->subtype_major;
}
else { # ex. application/atom+xml
return 0 unless $test->subtype eq $self->subtype;
}
return 1 if ! $test->parameters || ! $self->parameters;
return $test->parameters eq $self->parameters;
}
sub is_not_a {
my($self, @args) = @_;
!$self->is_a(@args);
}
1;
__END__
=head1 NAME
Atompub::MediaType - a media type object for the Atom Publishing Protocol
lib/Atompub/MediaType.pm view on Meta::CPAN
=head2 $type->parameters
=head2 $type->subtype_major
=head2 $type->extensions
=head2 $type->extension
=head2 $type->is_a
=head2 $type->is_not_a
=head2 $type->as_string
=head2 $type->without_parameters
=head1 SEE ALSO
L<Atompub>
t/03.media_type.t view on Meta::CPAN
is $png->without_parameters, 'image/png';
is $png->as_string, 'image/png';
is $png->extensions, 'png';
is $png->extension, 'png';
ok $png->is_a('*/*');
ok $png->is_a('image/*');
ok $png->is_a('image/png');
ok $png->is_not_a('text/*');
ok $png->is_not_a('image/jpeg');
is "$png", 'image/png';
ok $png eq '*/*';
ok $png ne 'text/*';
my $atom = media_type('entry');
isa_ok $atom, 'Atompub::MediaType';
is $atom->type, 'application';
t/03.media_type.t view on Meta::CPAN
is $atom->extensions, 'atom';
is $atom->extension, 'atom';
ok $atom->is_a('*/*');
ok $atom->is_a('application/*');
ok $atom->is_a('application/xml');
ok $atom->is_a('application/atom+xml');
ok $atom->is_a('application/atom+xml;type=entry');
ok $atom->is_not_a('text/*');
ok $atom->is_not_a('application/octet-stream');
ok $atom->is_not_a('application/atom+xml;type=feed');
is "$atom", 'application/atom+xml;type=entry';
ok $atom eq '*/*';
ok $atom ne 'text/*';
( run in 0.246 second using v1.01-cache-2.11-cpan-fb7fbe3ddfd )