epitools 0.4.48 → 0.4.49
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/epitools.gemspec +1 -1
- data/lib/epitools/mimemagic.rb +7 -2
- data/lib/epitools/mimemagic_tables.rb +53 -47
- data/lib/epitools/path.rb +10 -2
- metadata +7 -7
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.4.
|
1
|
+
0.4.49
|
data/epitools.gemspec
CHANGED
data/lib/epitools/mimemagic.rb
CHANGED
@@ -74,6 +74,11 @@ class MimeMagic
|
|
74
74
|
def extensions
|
75
75
|
TYPES.key?(type) ? TYPES[type][0] : []
|
76
76
|
end
|
77
|
+
|
78
|
+
# Default extension
|
79
|
+
def ext
|
80
|
+
extensions.first
|
81
|
+
end
|
77
82
|
|
78
83
|
# Get mime comment
|
79
84
|
def comment
|
@@ -131,11 +136,11 @@ class MimeMagic
|
|
131
136
|
def self.magic_match(io, matches)
|
132
137
|
matches.any? do |offset, value, children|
|
133
138
|
match = if Range === offset
|
134
|
-
|
139
|
+
io.seek(offset.begin)
|
135
140
|
io.read(offset.end - offset.begin + value.length).include?(value)
|
136
141
|
else
|
137
142
|
io.seek(offset)
|
138
|
-
|
143
|
+
value == io.read(value.length)
|
139
144
|
end
|
140
145
|
match && (!children || magic_match(io, children))
|
141
146
|
end
|
@@ -1,4 +1,10 @@
|
|
1
1
|
# Generated from freedesktop.org.xml
|
2
|
+
|
3
|
+
#
|
4
|
+
# TODO:
|
5
|
+
# Order by popularity, to speed up the MAGIC.find command.
|
6
|
+
#
|
7
|
+
|
2
8
|
class MimeMagic
|
3
9
|
private
|
4
10
|
EXTENSIONS = {
|
@@ -764,8 +770,8 @@ class MimeMagic
|
|
764
770
|
'application/ogg' => [%w(ogx), %w(), "Ogg multimedia file"],
|
765
771
|
'application/oxps' => [%w(oxps xps), %w(application/zip), "XPS document"],
|
766
772
|
'application/pdf' => [%w(pdf), %w(), "PDF document"],
|
767
|
-
'application/pgp-encrypted' => [%w(
|
768
|
-
'application/pgp-keys' => [%w(
|
773
|
+
'application/pgp-encrypted' => [%w(pgp gpg asc), %w(), "PGP/MIME-encrypted message header"],
|
774
|
+
'application/pgp-keys' => [%w(pkr skr asc), %w(text/plain), "PGP keys"],
|
769
775
|
'application/pkcs10' => [%w(p10), %w(), "PKCS#10 certification request"],
|
770
776
|
'application/pkcs7-signature' => [%w(p7s), %w(text/plain), "detached S/MIME signature"],
|
771
777
|
'application/pkcs8' => [%w(p8), %w(), "PKCS#8 private key"],
|
@@ -774,13 +780,13 @@ class MimeMagic
|
|
774
780
|
'application/pkix-pkipath' => [%w(pkipath), %w(), "PkiPath certification path"],
|
775
781
|
'application/postscript' => [%w(ps), %w(text/plain), "PS document"],
|
776
782
|
'application/ram' => [%w(ram), %w(), "RealMedia Metafile"],
|
777
|
-
'application/rdf+xml' => [%w(owl
|
783
|
+
'application/rdf+xml' => [%w(rdf owl rdfs), %w(application/xml), "RDF file"],
|
778
784
|
'application/relax-ng-compact-syntax' => [%w(rnc), %w(text/plain), "RELAX NG XML schema"],
|
779
785
|
'application/rss+xml' => [%w(rss), %w(application/xml), "RSS summary"],
|
780
786
|
'application/rtf' => [%w(rtf), %w(text/plain), "RTF document"],
|
781
787
|
'application/sdp' => [%w(sdp), %w(), "SDP multicast stream file"],
|
782
788
|
'application/sieve' => [%w(siv), %w(application/xml), "Sieve mail filter script"],
|
783
|
-
'application/smil' => [%w(kino smi
|
789
|
+
'application/smil' => [%w(smil kino smi sml), %w(application/xml), "SMIL document"],
|
784
790
|
'application/vnd.apple.mpegurl' => [%w(m3u m3u8), %w(), "HTTP Live Streaming playlist"],
|
785
791
|
'application/vnd.corel-draw' => [%w(cdr), %w(), "Corel Draw drawing"],
|
786
792
|
'application/vnd.emusic-emusic_package' => [%w(emp), %w(), "eMusic download package"],
|
@@ -793,10 +799,10 @@ class MimeMagic
|
|
793
799
|
'application/vnd.mozilla.xul+xml' => [%w(xul), %w(application/xml), "XUL interface document"],
|
794
800
|
'application/vnd.ms-access' => [%w(mdb), %w(), "JET database"],
|
795
801
|
'application/vnd.ms-cab-compressed' => [%w(cab), %w(), "Microsoft Cabinet archive"],
|
796
|
-
'application/vnd.ms-excel' => [%w(xla xlc xld xll xlm
|
797
|
-
'application/vnd.ms-powerpoint' => [%w(pot pps
|
802
|
+
'application/vnd.ms-excel' => [%w(xls xla xlc xld xll xlm xlt xlw), %w(), "Excel spreadsheet"],
|
803
|
+
'application/vnd.ms-powerpoint' => [%w(ppt pot pps ppz), %w(), "PowerPoint presentation"],
|
798
804
|
'application/vnd.ms-tnef' => [%w(tnef tnf), %w(), "TNEF message"],
|
799
|
-
'application/vnd.ms-works' => [%w(wcm wdb
|
805
|
+
'application/vnd.ms-works' => [%w(wks wcm wdb wps), %w(application/x-ole-storage), "Microsoft Works document"],
|
800
806
|
'application/vnd.ms-wpl' => [%w(wpl), %w(), "WPL playlist"],
|
801
807
|
'application/vnd.oasis.opendocument.chart' => [%w(odc), %w(application/zip), "ODC chart"],
|
802
808
|
'application/vnd.oasis.opendocument.chart-template' => [%w(otc), %w(application/zip), "ODC template"],
|
@@ -819,10 +825,10 @@ class MimeMagic
|
|
819
825
|
'application/vnd.oasis.opendocument.text-template' => [%w(ott), %w(application/zip), "ODT template"],
|
820
826
|
'application/vnd.oasis.opendocument.text-web' => [%w(oth), %w(application/zip), "OTH template"],
|
821
827
|
'application/vnd.openofficeorg.extension' => [%w(oxt), %w(application/zip), "OpenOffice.org extension"],
|
822
|
-
'application/vnd.openxmlformats-officedocument.presentationml.presentation' => [%w(pptm
|
828
|
+
'application/vnd.openxmlformats-officedocument.presentationml.presentation' => [%w(pptx pptm), %w(application/zip), "PowerPoint 2007 presentation"],
|
823
829
|
'application/vnd.openxmlformats-officedocument.presentationml.slideshow' => [%w(ppsx), %w(application/zip), "PowerPoint 2007 show"],
|
824
|
-
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => [%w(xlsm
|
825
|
-
'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => [%w(docm
|
830
|
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' => [%w(xlsx xlsm), %w(application/zip), "Excel 2007 spreadsheet"],
|
831
|
+
'application/vnd.openxmlformats-officedocument.wordprocessingml.document' => [%w(docx docm), %w(application/zip), "Word 2007 document"],
|
826
832
|
'application/vnd.rn-realmedia' => [%w(rm rmj rmm rms rmvb rmx), %w(), "RealMedia document"],
|
827
833
|
'application/vnd.stardivision.calc' => [%w(sdc), %w(), "StarCalc spreadsheet"],
|
828
834
|
'application/vnd.stardivision.chart' => [%w(sds), %w(), "StarChart chart"],
|
@@ -858,10 +864,10 @@ class MimeMagic
|
|
858
864
|
'application/x-awk' => [%w(awk), %w(application/x-executable text/plain), "AWK script"],
|
859
865
|
'application/x-bcpio' => [%w(bcpio), %w(), "BCPIO document"],
|
860
866
|
'application/x-bittorrent' => [%w(torrent), %w(), "BitTorrent seed file"],
|
861
|
-
'application/x-blender' => [%w(
|
867
|
+
'application/x-blender' => [%w(blender blend), %w(), "Blender scene"],
|
862
868
|
'application/x-bzdvi' => [%w(dvi.bz2), %w(), "TeX DVI document (bzip-compressed)"],
|
863
|
-
'application/x-bzip' => [%w(bz
|
864
|
-
'application/x-bzip-compressed-tar' => [%w(tar.
|
869
|
+
'application/x-bzip' => [%w(bz2 bz), %w(), "Bzip archive"],
|
870
|
+
'application/x-bzip-compressed-tar' => [%w(tar.bz2 tar.bz tbz tbz2), %w(application/x-bzip), "Tar archive (bzip-compressed)"],
|
865
871
|
'application/x-bzpdf' => [%w(pdf.bz2), %w(), "PDF document (bzip-compressed)"],
|
866
872
|
'application/x-bzpostscript' => [%w(ps.bz2), %w(), "PostScript document (bzip-compressed)"],
|
867
873
|
'application/x-cb7' => [%w(cb7), %w(application/x-7z-compressed), "comic book archive"],
|
@@ -874,7 +880,7 @@ class MimeMagic
|
|
874
880
|
'application/x-chm' => [%w(chm), %w(), "CHM document"],
|
875
881
|
'application/x-cisco-vpn-settings' => [%w(pcf), %w(), "Cisco VPN Settings"],
|
876
882
|
'application/x-compress' => [%w(z), %w(), "UNIX-compressed file"],
|
877
|
-
'application/x-compressed-tar' => [%w(tar.gz taz
|
883
|
+
'application/x-compressed-tar' => [%w(tar.gz tgz taz), %w(), "Tar archive (gzip-compressed)"],
|
878
884
|
'application/x-cpio' => [%w(cpio), %w(), "CPIO archive"],
|
879
885
|
'application/x-cpio-compressed' => [%w(cpio.gz), %w(), "CPIO archive (gzip-compressed)"],
|
880
886
|
'application/x-csh' => [%w(csh), %w(application/x-shellscript text/plain), "C shell script"],
|
@@ -898,16 +904,16 @@ class MimeMagic
|
|
898
904
|
'application/x-font-otf' => [%w(otf), %w(), "OpenType font"],
|
899
905
|
'application/x-font-pcf' => [%w(pcf pcf.gz pcf.z), %w(), "PCF font"],
|
900
906
|
'application/x-font-speedo' => [%w(spd), %w(), "Speedo font"],
|
901
|
-
'application/x-font-ttf' => [%w(ttc
|
907
|
+
'application/x-font-ttf' => [%w(ttf ttc), %w(), "TrueType font"],
|
902
908
|
'application/x-font-ttx' => [%w(ttx), %w(text/xml), "TrueType XML font"],
|
903
|
-
'application/x-font-type1' => [%w(
|
909
|
+
'application/x-font-type1' => [%w(pfb pfa gsf), %w(application/postscript), "Postscript type-1 font"],
|
904
910
|
'application/x-gameboy-rom' => [%w(gb), %w(), "Game Boy ROM"],
|
905
911
|
'application/x-gba-rom' => [%w(gba), %w(), "Game Boy Advance ROM"],
|
906
912
|
'application/x-gedcom' => [%w(ged gedcom), %w(), "GEDCOM family history"],
|
907
913
|
'application/x-genesis-rom' => [%w(gen md), %w(), "Genesis ROM"],
|
908
914
|
'application/x-gettext-translation' => [%w(gmo mo), %w(), "translated messages (machine-readable)"],
|
909
915
|
'application/x-glade' => [%w(glade), %w(application/xml), "Glade project"],
|
910
|
-
'application/x-gnucash' => [%w(gnc
|
916
|
+
'application/x-gnucash' => [%w(gnucash gnc xac), %w(), "GnuCash financial data"],
|
911
917
|
'application/x-gnumeric' => [%w(gnumeric), %w(), "Gnumeric spreadsheet"],
|
912
918
|
'application/x-gnuplot' => [%w(gnuplot gp gplt), %w(text/plain), "Gnuplot document"],
|
913
919
|
'application/x-go-sgf' => [%w(sgf), %w(text/plain), "SGF record"],
|
@@ -917,7 +923,7 @@ class MimeMagic
|
|
917
923
|
'application/x-gzip' => [%w(gz), %w(), "Gzip archive"],
|
918
924
|
'application/x-gzpdf' => [%w(pdf.gz), %w(application/x-gzip), "PDF document (gzip-compressed)"],
|
919
925
|
'application/x-gzpostscript' => [%w(ps.gz), %w(application/x-gzip), "PostScript document (gzip-compressed)"],
|
920
|
-
'application/x-hdf' => [%w(
|
926
|
+
'application/x-hdf' => [%w(hdf hdf4 hdf5 h4 h5), %w(), "HDF document"],
|
921
927
|
'application/x-hwp' => [%w(hwp), %w(), "Haansoft Hangul document"],
|
922
928
|
'application/x-hwt' => [%w(hwt), %w(), "Haansoft Hangul document template"],
|
923
929
|
'application/x-ica' => [%w(ica), %w(text/plain), "Citrix ICA settings file"],
|
@@ -945,7 +951,7 @@ class MimeMagic
|
|
945
951
|
'application/x-kspread' => [%w(ksp), %w(), "KSpread spreadsheet"],
|
946
952
|
'application/x-kugar' => [%w(kud), %w(), "Kugar document"],
|
947
953
|
'application/x-kword' => [%w(kwd kwt), %w(), "KWord document"],
|
948
|
-
'application/x-lha' => [%w(lha
|
954
|
+
'application/x-lha' => [%w(lzh lha), %w(), "LHA archive"],
|
949
955
|
'application/x-lhz' => [%w(lhz), %w(), "LHZ archive"],
|
950
956
|
'application/x-lrzip' => [%w(lrz), %w(), "Lrzip archive"],
|
951
957
|
'application/x-lrzip-compressed-tar' => [%w(tar.lrz tlrz), %w(application/x-lrzip), "Tar archive (lrzip-compressed)"],
|
@@ -974,7 +980,7 @@ class MimeMagic
|
|
974
980
|
'application/x-pak' => [%w(pak), %w(), "PAK archive"],
|
975
981
|
'application/x-palm-database' => [%w(pdb prc), %w(), "Palm OS database"],
|
976
982
|
'application/x-par2' => [%w(par2 par2), %w(), "Parchive archive"],
|
977
|
-
'application/x-perl' => [%w(
|
983
|
+
'application/x-perl' => [%w(perl pl pm al), %w(application/x-executable text/plain), "Perl script"],
|
978
984
|
'application/x-php' => [%w(php php3 php4), %w(text/plain), "PHP script"],
|
979
985
|
'application/x-pkcs12' => [%w(p12 pfx), %w(), "PKCS#12 certificate bundle"],
|
980
986
|
'application/x-pkcs7-certificates' => [%w(p7b spc), %w(), "PKCS#7 certificate bundle"],
|
@@ -1007,7 +1013,7 @@ class MimeMagic
|
|
1007
1013
|
'application/x-sv4cpio' => [%w(sv4cpio), %w(), "SV4 CPIO archive"],
|
1008
1014
|
'application/x-sv4crc' => [%w(sv4crc), %w(), "SV4 CPIO archive (with CRC)"],
|
1009
1015
|
'application/x-t602' => [%w(602), %w(), "T602 document"],
|
1010
|
-
'application/x-tar' => [%w(
|
1016
|
+
'application/x-tar' => [%w(tar gtar gem), %w(), "Tar archive"],
|
1011
1017
|
'application/x-tarz' => [%w(tar.z), %w(), "Tar archive (compressed)"],
|
1012
1018
|
'application/x-tex-gf' => [%w(gf), %w(), "generic font file"],
|
1013
1019
|
'application/x-tex-pk' => [%w(pk), %w(), "packed font file"],
|
@@ -1034,7 +1040,7 @@ class MimeMagic
|
|
1034
1040
|
'application/xml' => [%w(rng xbl xml xsd), %w(text/plain), "XML document"],
|
1035
1041
|
'application/xml-dtd' => [%w(dtd), %w(text/plain), "DTD file"],
|
1036
1042
|
'application/xml-external-parsed-entity' => [%w(ent), %w(application/xml), "XML entities document"],
|
1037
|
-
'application/xslt+xml' => [%w(xsl
|
1043
|
+
'application/xslt+xml' => [%w(xslt xsl), %w(application/xml), "XSLT stylesheet"],
|
1038
1044
|
'application/xspf+xml' => [%w(xspf), %w(application/xml), "XSPF playlist"],
|
1039
1045
|
'application/zip' => [%w(zip), %w(), "Zip archive"],
|
1040
1046
|
'audio/AMR' => [%w(amr), %w(), "AMR audio"],
|
@@ -1043,14 +1049,14 @@ class MimeMagic
|
|
1043
1049
|
'audio/annodex' => [%w(axa), %w(application/annodex), "Annodex Audio"],
|
1044
1050
|
'audio/basic' => [%w(au snd), %w(), "ULAW (Sun) audio"],
|
1045
1051
|
'audio/flac' => [%w(flac), %w(), "FLAC audio"],
|
1046
|
-
'audio/midi' => [%w(
|
1052
|
+
'audio/midi' => [%w(midi mid kar), %w(), "MIDI audio"],
|
1047
1053
|
'audio/mp2' => [%w(mp2), %w(), "MP2 audio"],
|
1048
|
-
'audio/mp4' => [%w(aac f4a
|
1054
|
+
'audio/mp4' => [%w(m4a aac f4a), %w(), "MPEG-4 audio"],
|
1049
1055
|
'audio/mpeg' => [%w(mp3 mpga), %w(), "MP3 audio"],
|
1050
|
-
'audio/ogg' => [%w(oga
|
1056
|
+
'audio/ogg' => [%w(ogg oga spx), %w(application/ogg), "Ogg Audio"],
|
1051
1057
|
'audio/prs.sid' => [%w(psid sid), %w(), "Commodore 64 audio"],
|
1052
1058
|
'audio/vnd.rn-realaudio' => [%w(ra rax), %w(), "RealAudio document"],
|
1053
|
-
'audio/x-aiff' => [%w(aif aifc
|
1059
|
+
'audio/x-aiff' => [%w(aiff aif aifc), %w(), "AIFF/Amiga/Mac audio"],
|
1054
1060
|
'audio/x-ape' => [%w(ape), %w(), "Monkey's audio"],
|
1055
1061
|
'audio/x-flac+ogg' => [%w(ogg), %w(audio/ogg), "Ogg FLAC audio"],
|
1056
1062
|
'audio/x-gsm' => [%w(gsm), %w(), "GSM 06.10 audio"],
|
@@ -1060,7 +1066,7 @@ class MimeMagic
|
|
1060
1066
|
'audio/x-matroska' => [%w(mka), %w(application/x-matroska), "Matroska audio"],
|
1061
1067
|
'audio/x-minipsf' => [%w(minipsf), %w(audio/x-psf), "MiniPSF audio"],
|
1062
1068
|
'audio/x-mo3' => [%w(mo3), %w(), "compressed Tracker audio"],
|
1063
|
-
'audio/x-mod' => [%w(669 m15 med
|
1069
|
+
'audio/x-mod' => [%w(mod 669 m15 med mtm ult uni), %w(), "Amiga SoundTracker audio"],
|
1064
1070
|
'audio/x-mpegurl' => [%w(m3u m3u8 vlc), %w(text/plain), "MP3 audio (streamed)"],
|
1065
1071
|
'audio/x-ms-asx' => [%w(asx wax wmx wvx), %w(), "Microsoft ASX playlist"],
|
1066
1072
|
'audio/x-ms-wma' => [%w(wma), %w(video/x-ms-asf), "Windows Media audio"],
|
@@ -1087,16 +1093,16 @@ class MimeMagic
|
|
1087
1093
|
'image/fits' => [%w(fits), %w(), "FITS document"],
|
1088
1094
|
'image/gif' => [%w(gif), %w(), "GIF image"],
|
1089
1095
|
'image/ief' => [%w(ief), %w(), "IEF image"],
|
1090
|
-
'image/jp2' => [%w(j2k
|
1096
|
+
'image/jp2' => [%w(jp2 j2k jpc jpf jpx), %w(), "JPEG-2000 image"],
|
1091
1097
|
'image/jpeg' => [%w(jpeg jpg jpe), %w(), "JPEG image"],
|
1092
1098
|
'image/openraster' => [%w(ora), %w(), "OpenRaster archiving image"],
|
1093
1099
|
'image/png' => [%w(png), %w(), "PNG image"],
|
1094
1100
|
'image/rle' => [%w(rle), %w(), "Run Length Encoded bitmap image"],
|
1095
1101
|
'image/svg+xml' => [%w(svg), %w(application/xml), "SVG image"],
|
1096
1102
|
'image/svg+xml-compressed' => [%w(svgz), %w(application/x-gzip), "compressed SVG image"],
|
1097
|
-
'image/tiff' => [%w(tif
|
1103
|
+
'image/tiff' => [%w(tiff tif), %w(), "TIFF image"],
|
1098
1104
|
'image/vnd.adobe.photoshop' => [%w(psd), %w(), "Photoshop image"],
|
1099
|
-
'image/vnd.djvu' => [%w(djv
|
1105
|
+
'image/vnd.djvu' => [%w(djvu djv), %w(), "DjVu image"],
|
1100
1106
|
'image/vnd.dwg' => [%w(dwg), %w(), "AutoCAD image"],
|
1101
1107
|
'image/vnd.dxf' => [%w(dxf), %w(), "DXF vector image"],
|
1102
1108
|
'image/vnd.microsoft.icon' => [%w(ico), %w(), "Microsoft icon"],
|
@@ -1164,11 +1170,11 @@ class MimeMagic
|
|
1164
1170
|
'text/calendar' => [%w(ics vcs), %w(text/plain), "VCS/ICS calendar"],
|
1165
1171
|
'text/css' => [%w(css cssl), %w(text/x-csrc), "CSS stylesheet"],
|
1166
1172
|
'text/csv' => [%w(csv), %w(text/plain), "CSV document"],
|
1167
|
-
'text/directory' => [%w(
|
1168
|
-
'text/html' => [%w(htm
|
1169
|
-
'text/plain' => [%w(asc
|
1173
|
+
'text/directory' => [%w(vcf vct gcrd), %w(text/plain), "electronic business card"],
|
1174
|
+
'text/html' => [%w(html htm), %w(text/plain), "HTML document"],
|
1175
|
+
'text/plain' => [%w(txt asc), %w(), "plain text document"],
|
1170
1176
|
'text/richtext' => [%w(rtx), %w(text/plain), "rich text document"],
|
1171
|
-
'text/sgml' => [%w(sgm
|
1177
|
+
'text/sgml' => [%w(sgml sgm), %w(text/plain), "SGML document"],
|
1172
1178
|
'text/spreadsheet' => [%w(slk sylk), %w(text/plain), "spreadsheet interchange document"],
|
1173
1179
|
'text/tab-separated-values' => [%w(tsv), %w(text/plain), "TSV document"],
|
1174
1180
|
'text/troff' => [%w(roff t tr), %w(text/plain), "Troff document"],
|
@@ -1178,10 +1184,10 @@ class MimeMagic
|
|
1178
1184
|
'text/vnd.trolltech.linguist' => [%w(ts), %w(application/xml), "message catalog"],
|
1179
1185
|
'text/vnd.wap.wml' => [%w(wml), %w(application/xml), "WML document"],
|
1180
1186
|
'text/vnd.wap.wmlscript' => [%w(wmls), %w(), "WMLScript program"],
|
1181
|
-
'text/x-adasrc' => [%w(adb
|
1187
|
+
'text/x-adasrc' => [%w(ads adb), %w(text/plain), "Ada source code"],
|
1182
1188
|
'text/x-bibtex' => [%w(bib), %w(text/plain), "BibTeX document"],
|
1183
|
-
'text/x-c++hdr' => [%w(h++
|
1184
|
-
'text/x-c++src' => [%w(
|
1189
|
+
'text/x-c++hdr' => [%w(hpp hh h++ hp hxx), %w(text/x-chdr), "C++ header"],
|
1190
|
+
'text/x-c++src' => [%w(cpp c++ cc cxx c), %w(text/x-csrc), "C++ source code"],
|
1185
1191
|
'text/x-chdr' => [%w(h), %w(text/x-csrc), "C header"],
|
1186
1192
|
'text/x-cmake' => [%w(cmake), %w(text/plain), "CMake source code"],
|
1187
1193
|
'text/x-cobol' => [%w(cbl cob), %w(text/plain), "COBOL source file"],
|
@@ -1213,17 +1219,17 @@ class MimeMagic
|
|
1213
1219
|
'text/x-moc' => [%w(moc), %w(text/plain), "Qt MOC file"],
|
1214
1220
|
'text/x-mof' => [%w(mof), %w(text/x-csrc), "Managed Object Format"],
|
1215
1221
|
'text/x-mpsub' => [%w(sub), %w(text/plain), "MPSub subtitles"],
|
1216
|
-
'text/x-mrml' => [%w(mrl
|
1222
|
+
'text/x-mrml' => [%w(mrml mrl), %w(), "MRML playlist"],
|
1217
1223
|
'text/x-ms-regedit' => [%w(reg), %w(text/plain), "Windows Registry extract"],
|
1218
1224
|
'text/x-mup' => [%w(mup not), %w(text/plain), "Mup publication"],
|
1219
|
-
'text/x-nfo' => [%w(nfo), %w(text/x-readme), "NFO
|
1225
|
+
'text/x-nfo' => [%w(nfo), %w(text/x-readme), "NFO file"],
|
1220
1226
|
'text/x-objcsrc' => [%w(m), %w(text/x-csrc), "Objective-C source code"],
|
1221
1227
|
'text/x-ocaml' => [%w(ml mli), %w(), "OCaml source code"],
|
1222
1228
|
'text/x-ocl' => [%w(ocl), %w(text/plain), "OCL file"],
|
1223
1229
|
'text/x-ooc' => [%w(ooc), %w(text/x-csrc), "OOC source code"],
|
1224
1230
|
'text/x-opml+xml' => [%w(opml), %w(application/xml), "OPML syndication feed"],
|
1225
|
-
'text/x-pascal' => [%w(p
|
1226
|
-
'text/x-patch' => [%w(diff
|
1231
|
+
'text/x-pascal' => [%w(pas p), %w(text/plain), "Pascal source code"],
|
1232
|
+
'text/x-patch' => [%w(patch diff), %w(text/plain), "differences between files"],
|
1227
1233
|
'text/x-python' => [%w(py), %w(application/x-executable text/plain), "Python script"],
|
1228
1234
|
'text/x-rpm-spec' => [%w(spec), %w(text/plain), "RPM spec file"],
|
1229
1235
|
'text/x-scheme' => [%w(scm), %w(text/plain), "Scheme source code"],
|
@@ -1241,7 +1247,7 @@ class MimeMagic
|
|
1241
1247
|
'text/x-troff-ms' => [%w(ms), %w(text/plain), "Troff MS input document"],
|
1242
1248
|
'text/x-txt2tags' => [%w(t2t), %w(text/plain), "txt2tags document"],
|
1243
1249
|
'text/x-uil' => [%w(uil), %w(text/plain), "X-Motif UIL table"],
|
1244
|
-
'text/x-uri' => [%w(uri
|
1250
|
+
'text/x-uri' => [%w(url uri), %w(text/plain), "resource location"],
|
1245
1251
|
'text/x-vala' => [%w(vala vapi), %w(text/x-csrc), "Vala source code"],
|
1246
1252
|
'text/x-verilog' => [%w(v), %w(text/plain), "Verilog source code"],
|
1247
1253
|
'text/x-vhdl' => [%w(vhd vhdl), %w(text/plain), "VHDL source code"],
|
@@ -1251,15 +1257,15 @@ class MimeMagic
|
|
1251
1257
|
'video/3gpp2' => [%w(3g2 3gp2 3gpp2), %w(video/mp4), "3GPP2 multimedia file"],
|
1252
1258
|
'video/annodex' => [%w(axv), %w(application/annodex), "Annodex Video"],
|
1253
1259
|
'video/dv' => [%w(dv), %w(), "DV video"],
|
1254
|
-
'video/mp2t' => [%w(bdm bdmv clpi cpi
|
1255
|
-
'video/mp4' => [%w(
|
1256
|
-
'video/mpeg' => [%w(mp2 mpe
|
1260
|
+
'video/mp2t' => [%w(m2ts m2t bdm bdmv clpi cpi mpl mpls mts ts), %w(), "MPEG-2 transport stream"],
|
1261
|
+
'video/mp4' => [%w(mp4 m4v f4v), %w(), "MPEG-4 video"],
|
1262
|
+
'video/mpeg' => [%w(mpeg mpg mp2 mpe vob), %w(), "MPEG video"],
|
1257
1263
|
'video/ogg' => [%w(ogv), %w(application/ogg), "Ogg Video"],
|
1258
|
-
'video/quicktime' => [%w(
|
1264
|
+
'video/quicktime' => [%w(mov qt moov qtvr), %w(), "QuickTime video"],
|
1259
1265
|
'video/vivo' => [%w(viv vivo), %w(), "Vivo video"],
|
1260
1266
|
'video/vnd.rn-realvideo' => [%w(rv rvx), %w(), "RealVideo document"],
|
1261
1267
|
'video/webm' => [%w(webm), %w(), "WebM video"],
|
1262
|
-
'video/x-flic' => [%w(flc
|
1268
|
+
'video/x-flic' => [%w(fli flc), %w(), "FLIC animation"],
|
1263
1269
|
'video/x-flv' => [%w(flv), %w(), "Flash video"],
|
1264
1270
|
'video/x-javafx' => [%w(fxm), %w(video/x-flv), "JavaFX video"],
|
1265
1271
|
'video/x-matroska' => [%w(mkv), %w(application/x-matroska), "Matroska video"],
|
data/lib/epitools/path.rb
CHANGED
@@ -458,6 +458,14 @@ class Path
|
|
458
458
|
open { |io| MimeMagic.by_magic(io) }
|
459
459
|
end
|
460
460
|
|
461
|
+
#
|
462
|
+
# The filetype (as a standard file extension), verified with Magic.
|
463
|
+
#
|
464
|
+
# (In other words, this will give you the *true* extension, even if the file's
|
465
|
+
# extension is wrong.)
|
466
|
+
#
|
467
|
+
# Note: Prefers long extensions (eg: jpeg over jpg)
|
468
|
+
#
|
461
469
|
def type
|
462
470
|
@magictype ||= proc do
|
463
471
|
|
@@ -465,7 +473,7 @@ class Path
|
|
465
473
|
magic = self.magic
|
466
474
|
|
467
475
|
if !ext and magic
|
468
|
-
magic.
|
476
|
+
magic.ext
|
469
477
|
elsif ext and !magic
|
470
478
|
ext
|
471
479
|
elsif !ext and !magic
|
@@ -474,7 +482,7 @@ class Path
|
|
474
482
|
if magic.extensions.include? ext
|
475
483
|
ext
|
476
484
|
else
|
477
|
-
magic.
|
485
|
+
magic.ext # in case the supplied extension is wrong...
|
478
486
|
end
|
479
487
|
end
|
480
488
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: epitools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.49
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -14,7 +14,7 @@ default_executable:
|
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|
17
|
-
requirement: &
|
17
|
+
requirement: &75824280 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 2.2.0
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *75824280
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: mechanize
|
28
|
-
requirement: &
|
28
|
+
requirement: &75824040 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 1.0.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *75824040
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: sqlite3-ruby
|
39
|
-
requirement: &
|
39
|
+
requirement: &75823750 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,7 +44,7 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *75823750
|
48
48
|
description: Miscellaneous utility libraries to make my life easier.
|
49
49
|
email: chris@ill-logic.com
|
50
50
|
executables: []
|