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 )