uSAC-MIME
view release on metacpan or search on metacpan
lib/uSAC/MIME.pm view on Meta::CPAN
}
sub index{
my $db=shift;
my @tmp;
my @tmp2;
for my $mime (keys $db->%*){
for($db->{$mime}){
my $exts=[split " "];
push @tmp, map {$_,$mime} @$exts;
push @tmp2, $mime, $exts
}
}
#first hash is forward map from extention to mime type
#second hash is reverse map from mime to to array or extension
if(wantarray){
return ({@tmp},{@tmp2});
}
else {
return {@tmp};
}
}
#add an ext=>mime mapping. need to reindex after
#returns
sub add {
my ($db,$ext,$mime)=@_;
my $exts_string=$db->{$mime}//"";
unless($exts_string=~/\b$ext\b/){
my @items=split " ", $exts_string;
push @items, $ext;
$db->{$mime}=join " ", @items;
}
$db;
}
sub rem {
my ($db,$ext,$mime)=@_;
my $exts_string=$db->{$mime};
return unless defined $exts_string;
if($exts_string=~s/\b$ext\b//){
$exts_string=~s/ +/ /;
if($exts_string eq " "){
delete $db->{mime};
}
else {
$db->{$mime}=$exts_string;
}
}
$db
}
#After this unit is compiled, initalise the default map with data from DATA file handle.
#This is then used in the new constructor
UNITCHECK{
#Force loading of defaults
my $dummy=uSAC::MIME->new_empty;
$dummy->load_from_handle(\*DATA);
$default_mime_to_ext={$dummy->%*};
}
1;
__DATA__
text/html html htm shtml
text/css css
text/xml xml
image/gif gif
image/jpeg jpeg jpg
application/javascript js
application/atom+xml atom
application/rss+xml rss
text/mathml mml
text/plain txt
text/vnd.sun.j2me.app-descriptor jad
text/vnd.wap.wml wml
text/x-component htc
image/png png
image/svg+xml svg svgz
image/tiff tif tiff
image/vnd.wap.wbmp wbmp
image/webp webp
image/x-icon ico
image/x-jng jng
image/x-ms-bmp bmp
font/ttf ttf
font/woff woff
font/woff2 woff2
application/java-archive jar war ear
application/json json
application/mac-binhex40 hqx
application/msword doc
application/pdf pdf
application/postscript ps eps ai
application/rtf rtf
application/vnd.apple.mpegurl m3u8
application/vnd.google-earth.kml+xml kml
application/vnd.google-earth.kmz kmz
application/vnd.ms-excel xls
application/vnd.ms-fontobject eot
application/vnd.ms-powerpoint ppt
application/vnd.oasis.opendocument.graphics odg
application/vnd.oasis.opendocument.presentation odp
application/vnd.oasis.opendocument.spreadsheet ods
application/vnd.oasis.opendocument.text odt
application/vnd.openxmlformats-officedocument.presentationml.presentation
pptx
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
xlsx
application/vnd.openxmlformats-officedocument.wordprocessingml.document
( run in 0.499 second using v1.01-cache-2.11-cpan-5735350b133 )