waves 0.8.2 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/waves +4 -3
- data/doc/VERSION +1 -1
- data/lib/waves.rb +52 -40
- data/lib/{caches → waves/caches}/file.rb +3 -1
- data/lib/waves/caches/memcached.rb +56 -0
- data/lib/{caches → waves/caches}/simple.rb +6 -7
- data/lib/{caches → waves/caches}/synchronized.rb +15 -1
- data/lib/{commands → waves/commands}/console.rb +4 -4
- data/lib/{commands → waves/commands}/generate.rb +6 -5
- data/lib/{commands → waves/commands}/help.rb +0 -0
- data/lib/{commands → waves/commands}/server.rb +1 -1
- data/lib/{dispatchers → waves/dispatchers}/base.rb +17 -31
- data/lib/waves/dispatchers/default.rb +19 -0
- data/lib/{ext → waves/ext}/float.rb +0 -0
- data/lib/{ext → waves/ext}/hash.rb +0 -0
- data/lib/{ext → waves/ext}/integer.rb +16 -1
- data/lib/{ext → waves/ext}/kernel.rb +3 -7
- data/lib/{ext → waves/ext}/module.rb +3 -3
- data/lib/{ext → waves/ext}/object.rb +2 -0
- data/lib/waves/ext/string.rb +73 -0
- data/lib/{ext → waves/ext}/symbol.rb +0 -1
- data/lib/{ext → waves/ext}/tempfile.rb +0 -0
- data/lib/waves/ext/time.rb +5 -0
- data/lib/{foundations → waves/foundations}/classic.rb +9 -21
- data/lib/{foundations → waves/foundations}/compact.rb +15 -20
- data/lib/waves/foundations/rest.rb +311 -0
- data/lib/waves/helpers/basic.rb +13 -0
- data/lib/{helpers → waves/helpers}/doc_type.rb +3 -0
- data/lib/waves/helpers/form.rb +94 -0
- data/lib/waves/helpers/formatting.rb +14 -0
- data/lib/waves/layers/mvc.rb +65 -0
- data/lib/{layers → waves/layers}/mvc/controllers.rb +0 -0
- data/lib/{layers → waves/layers}/mvc/extensions.rb +23 -11
- data/lib/{layers → waves/layers}/orm/migration.rb +0 -0
- data/lib/{layers → waves/layers}/orm/providers/active_record.rb +2 -5
- data/lib/{layers → waves/layers}/orm/providers/active_record/migrations/empty.rb.erb +0 -0
- data/lib/{layers → waves/layers}/orm/providers/active_record/tasks/generate.rb +1 -1
- data/lib/{layers → waves/layers}/orm/providers/active_record/tasks/schema.rb +1 -1
- data/lib/{layers → waves/layers}/orm/providers/data_mapper.rb +0 -0
- data/lib/{layers → waves/layers}/orm/providers/filebase.rb +0 -0
- data/lib/{layers → waves/layers}/orm/providers/sequel.rb +28 -29
- data/lib/{layers → waves/layers}/orm/providers/sequel/migrations/empty.rb.erb +0 -0
- data/lib/{layers → waves/layers}/orm/providers/sequel/tasks/generate.rb +1 -1
- data/lib/{layers → waves/layers}/orm/providers/sequel/tasks/schema.rb +2 -0
- data/lib/waves/layers/rack/rack_cache.rb +32 -0
- data/lib/waves/layers/renderers/erubis.rb +52 -0
- data/lib/waves/layers/renderers/haml.rb +67 -0
- data/lib/waves/layers/renderers/markaby.rb +41 -0
- data/lib/waves/layers/text/inflect/english.rb +42 -0
- data/lib/waves/matchers/accept.rb +47 -0
- data/lib/waves/matchers/ext.rb +27 -0
- data/lib/waves/matchers/path.rb +72 -0
- data/lib/waves/matchers/query.rb +43 -0
- data/lib/waves/matchers/request.rb +86 -0
- data/lib/waves/matchers/requested.rb +31 -0
- data/lib/{matchers → waves/matchers}/resource.rb +8 -1
- data/lib/waves/matchers/traits.rb +30 -0
- data/lib/waves/matchers/uri.rb +69 -0
- data/lib/waves/media/mime_types.rb +542 -0
- data/lib/waves/renderers/mixin.rb +9 -0
- data/lib/waves/request/accept.rb +92 -0
- data/lib/{runtime → waves/request}/request.rb +77 -61
- data/lib/waves/resources/file_mixin.rb +11 -0
- data/lib/{resources → waves/resources}/mixin.rb +42 -44
- data/lib/waves/resources/paths.rb +132 -0
- data/lib/waves/response/client_errors.rb +10 -0
- data/lib/waves/response/packaged.rb +19 -0
- data/lib/waves/response/redirects.rb +35 -0
- data/lib/{runtime → waves/response}/response.rb +29 -11
- data/lib/{runtime → waves/response}/response_mixin.rb +30 -17
- data/lib/waves/runtime/applications.rb +18 -0
- data/lib/{runtime → waves/runtime}/configuration.rb +31 -25
- data/lib/waves/runtime/console.rb +24 -0
- data/lib/{runtime → waves/runtime}/logger.rb +3 -3
- data/lib/{runtime → waves/runtime}/mocks.rb +2 -2
- data/lib/waves/runtime/rackup.rb +37 -0
- data/lib/waves/runtime/runtime.rb +48 -0
- data/lib/waves/runtime/server.rb +33 -0
- data/lib/{servers → waves/servers}/base.rb +0 -0
- data/lib/{servers → waves/servers}/mongrel.rb +0 -0
- data/lib/{servers → waves/servers}/webrick.rb +0 -0
- data/lib/{tasks → waves/tasks}/gem.rb +0 -0
- data/lib/{tasks → waves/tasks}/generate.rb +0 -0
- data/lib/waves/views/cassy.rb +173 -0
- data/lib/{views → waves/views}/errors.rb +8 -7
- data/lib/waves/views/mixin.rb +23 -0
- data/lib/waves/views/templated.rb +40 -0
- data/samples/basic/basic_startup.rb +70 -0
- data/samples/basic/config.ru +9 -0
- data/samples/blog/configurations/development.rb +17 -16
- data/samples/blog/configurations/production.rb +0 -11
- data/samples/blog/resources/entry.rb +3 -3
- data/samples/blog/resources/map.rb +10 -3
- data/samples/blog/startup.rb +4 -3
- data/templates/classic/Rakefile +28 -29
- data/templates/classic/configurations/default.rb.erb +8 -3
- data/templates/classic/configurations/development.rb.erb +1 -20
- data/templates/classic/configurations/production.rb.erb +2 -16
- data/templates/classic/public/images/favicon.ico +0 -0
- data/templates/classic/resources/server.rb.erb +9 -0
- data/templates/classic/startup.rb.erb +3 -3
- data/templates/classic/views/css.rb.erb +14 -0
- data/templates/classic/views/default.rb.erb +17 -0
- data/templates/classic/views/errors.rb.erb +10 -0
- data/templates/classic/views/pages.rb.erb +14 -0
- data/templates/compact/startup.rb.erb +8 -3
- data/test/ext/object.rb +55 -0
- data/test/ext/shortcuts.rb +73 -0
- data/test/helpers.rb +17 -0
- data/test/match/accept.rb +78 -0
- data/test/match/ext.rb +156 -0
- data/test/match/methods.rb +22 -0
- data/test/match/params.rb +33 -0
- data/test/match/path.rb +106 -0
- data/test/match/query.rb +60 -0
- data/test/match/request.rb +91 -0
- data/test/match/requested.rb +149 -0
- data/test/match/uri.rb +136 -0
- data/test/process/request.rb +75 -0
- data/test/process/resource.rb +53 -0
- data/test/resources/path.rb +166 -0
- data/test/runtime/configurations.rb +19 -0
- data/test/runtime/request.rb +63 -0
- data/test/runtime/response.rb +85 -0
- data/test/views/views.rb +40 -0
- metadata +243 -157
- data/lib/caches/memcached.rb +0 -40
- data/lib/dispatchers/default.rb +0 -25
- data/lib/ext/string.rb +0 -20
- data/lib/helpers/basic.rb +0 -11
- data/lib/helpers/extended.rb +0 -21
- data/lib/helpers/form.rb +0 -42
- data/lib/helpers/formatting.rb +0 -30
- data/lib/helpers/layouts.rb +0 -37
- data/lib/helpers/model.rb +0 -37
- data/lib/helpers/view.rb +0 -22
- data/lib/layers/inflect/english.rb +0 -67
- data/lib/layers/mvc.rb +0 -54
- data/lib/layers/renderers/erubis.rb +0 -60
- data/lib/layers/renderers/haml.rb +0 -47
- data/lib/layers/renderers/markaby.rb +0 -29
- data/lib/matchers/accept.rb +0 -21
- data/lib/matchers/base.rb +0 -30
- data/lib/matchers/content_type.rb +0 -17
- data/lib/matchers/path.rb +0 -67
- data/lib/matchers/query.rb +0 -21
- data/lib/matchers/request.rb +0 -27
- data/lib/matchers/traits.rb +0 -19
- data/lib/matchers/uri.rb +0 -20
- data/lib/renderers/mixin.rb +0 -36
- data/lib/resources/paths.rb +0 -34
- data/lib/runtime/console.rb +0 -23
- data/lib/runtime/mime_types.rb +0 -536
- data/lib/runtime/monitor.rb +0 -32
- data/lib/runtime/runtime.rb +0 -67
- data/lib/runtime/server.rb +0 -20
- data/lib/runtime/session.rb +0 -27
- data/lib/runtime/worker.rb +0 -86
- data/lib/views/mixin.rb +0 -62
- data/samples/blog/blog.db +0 -0
- data/samples/blog/log/waves.production +0 -3
- data/templates/classic/resources/map.rb.erb +0 -8
- data/templates/classic/templates/errors/not_found_404.mab +0 -7
- data/templates/classic/templates/errors/server_error_500.mab +0 -7
- data/templates/classic/templates/layouts/default.mab +0 -14
- data/templates/classic/tmp/sessions/.gitignore +0 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
module Waves
|
2
|
+
module Matchers
|
3
|
+
|
4
|
+
#
|
5
|
+
# Matches the MIME-type of the URI path (using the extension)
|
6
|
+
# and, failing that, falls back to the accept header
|
7
|
+
#
|
8
|
+
# Use :extension or :ext for matching the extension itself or
|
9
|
+
# :accept to match the actual HTTP Accept header
|
10
|
+
#
|
11
|
+
|
12
|
+
class Requested
|
13
|
+
|
14
|
+
def initialize( val ) ; @val = val ; end
|
15
|
+
|
16
|
+
def call( request )
|
17
|
+
request.requested.include?( @val )
|
18
|
+
end
|
19
|
+
|
20
|
+
# Proc-like interface
|
21
|
+
#
|
22
|
+
def [](request)
|
23
|
+
call request
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -2,6 +2,14 @@ module Waves
|
|
2
2
|
|
3
3
|
module Matchers
|
4
4
|
|
5
|
+
#
|
6
|
+
# todo:
|
7
|
+
# hmmm ... it turns out there don't seem to be a whole lot
|
8
|
+
# of matchers that aren't request-based. and by "whole lot"
|
9
|
+
# i really mean "any" ... so maybe we don't need this extra
|
10
|
+
# layer of abstraction? -dan
|
11
|
+
#
|
12
|
+
|
5
13
|
class Resource
|
6
14
|
|
7
15
|
def initialize( options )
|
@@ -10,7 +18,6 @@ module Waves
|
|
10
18
|
|
11
19
|
def call( resource ) ; @matcher.call( resource.request ) ; end
|
12
20
|
def []( *args ) ; call( *args ) ; end
|
13
|
-
|
14
21
|
|
15
22
|
end
|
16
23
|
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Waves
|
2
|
+
|
3
|
+
module Matchers
|
4
|
+
|
5
|
+
# @todo Umm.. what all can exist here? --rue
|
6
|
+
#
|
7
|
+
class Traits
|
8
|
+
def initialize(pattern)
|
9
|
+
raise ArgumentError, "No traits given!" unless pattern
|
10
|
+
@pattern = pattern
|
11
|
+
end
|
12
|
+
|
13
|
+
def call( request )
|
14
|
+
@pattern.all? do | key, val |
|
15
|
+
( val.is_a? Proc and val.call( request.traits[ key ] ) ) or val === request.traits[ key ]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# Proc-like interface
|
20
|
+
#
|
21
|
+
def [](request)
|
22
|
+
call request
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module Waves
|
2
|
+
|
3
|
+
module Matchers
|
4
|
+
|
5
|
+
# Matcher for the whole URL.
|
6
|
+
#
|
7
|
+
class URI
|
8
|
+
|
9
|
+
attr_accessor :constraints
|
10
|
+
|
11
|
+
def initialize(options)
|
12
|
+
|
13
|
+
# Simplest to fake it if there is no path to match
|
14
|
+
@path = if options[:path]
|
15
|
+
Waves::Matchers::Path.new( options[:path] )
|
16
|
+
else
|
17
|
+
lambda { {} }
|
18
|
+
end
|
19
|
+
|
20
|
+
@constraints = {}
|
21
|
+
|
22
|
+
@constraints[:host] = options[:host] if options[:host]
|
23
|
+
@constraints[:port] = options[:port] if options[:port]
|
24
|
+
@constraints[:scheme] = options[:scheme] if options[:scheme]
|
25
|
+
|
26
|
+
raise ArgumentError, "No URI matching" if !@path and @constraints.empty?
|
27
|
+
end
|
28
|
+
|
29
|
+
# Match resource URL.
|
30
|
+
#
|
31
|
+
# This returns the set of captures if matching!
|
32
|
+
#
|
33
|
+
def call(request)
|
34
|
+
if captures = @path.call(request) and test(request)
|
35
|
+
captures
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
#
|
40
|
+
# @todo This could maybe be optimised by detecting
|
41
|
+
# empty constraints before calling. Not high
|
42
|
+
# importance. --rue
|
43
|
+
#
|
44
|
+
def test(request)
|
45
|
+
constraints.all? {|key, val|
|
46
|
+
if val.nil? or val == true
|
47
|
+
true
|
48
|
+
else
|
49
|
+
if val.respond_to? :call
|
50
|
+
val.call( request )
|
51
|
+
else
|
52
|
+
val == request.send( key ) or val === request.send( key ) or request.send( key ) === val
|
53
|
+
end
|
54
|
+
end
|
55
|
+
}
|
56
|
+
end
|
57
|
+
|
58
|
+
# Proc-like interface
|
59
|
+
#
|
60
|
+
def [](request)
|
61
|
+
call request
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
@@ -0,0 +1,542 @@
|
|
1
|
+
# @todo Maybe split this out into 5-20 really common MIME types
|
2
|
+
# and allow importing the rest with some switch (and of
|
3
|
+
# course just introducing them.) This *might* lead to some
|
4
|
+
# space/runtime savings. --rue
|
5
|
+
#
|
6
|
+
module Waves
|
7
|
+
|
8
|
+
# Mapping from file extensions to MIME types.
|
9
|
+
#
|
10
|
+
# Each extension may have multiple types. Originally
|
11
|
+
# taken from Mongrel.
|
12
|
+
#
|
13
|
+
|
14
|
+
MimeTypes = Hash.new {|h, k| h[k] = [] }
|
15
|
+
|
16
|
+
# Build up MimeTypes
|
17
|
+
MimeTypes[".skd"] << "application/x-koan"
|
18
|
+
MimeTypes[".el"] << "text/x-script.elisp"
|
19
|
+
MimeTypes[".iges"] << "application/iges"
|
20
|
+
MimeTypes[".iefs"] << "image/ief"
|
21
|
+
MimeTypes[".omcr"] << "application/x-omcregerator"
|
22
|
+
MimeTypes[".spc"] << "text/x-speech"
|
23
|
+
MimeTypes[".mng"] << "video/x-mng"
|
24
|
+
MimeTypes[".deb"] << "application/octet-stream"
|
25
|
+
MimeTypes[".mzz"] << "application/x-vnd.audioexplosion.mzz"
|
26
|
+
MimeTypes[".csh"] << "text/x-script.csh"
|
27
|
+
MimeTypes[".pfx"] << "application/x-pkcs12"
|
28
|
+
MimeTypes[".lhx"] << "application/octet-stream"
|
29
|
+
MimeTypes[".xls"] << "application/excel"
|
30
|
+
MimeTypes[".wsc"] << "text/scriplet"
|
31
|
+
MimeTypes[".tsp"] << "audio/tsplayer"
|
32
|
+
MimeTypes[".ccad"] << "application/clariscad"
|
33
|
+
MimeTypes[".mpga"] << "audio/mpeg"
|
34
|
+
MimeTypes[".pps"] << "application/mspowerpoint"
|
35
|
+
MimeTypes[".htt"] << "text/webviewhtml"
|
36
|
+
MimeTypes[".texinfo"] << "application/x-texinfo"
|
37
|
+
MimeTypes[".p10"] << "application/x-pkcs10"
|
38
|
+
MimeTypes[".xlt"] << "application/excel"
|
39
|
+
MimeTypes[".ppt"] << "application/mspowerpoint"
|
40
|
+
MimeTypes[".es"] << "application/x-esrehber"
|
41
|
+
MimeTypes[".fdf"] << "application/vnd.fdf"
|
42
|
+
MimeTypes[".def"] << "text/plain"
|
43
|
+
MimeTypes[".p12"] << "application/x-pkcs12"
|
44
|
+
MimeTypes[".pdb"] << "application/x-pilot"
|
45
|
+
MimeTypes[".fpx"] << "image/vnd.net-fpx"
|
46
|
+
MimeTypes[".xlv"] << "application/excel"
|
47
|
+
MimeTypes[".tk"] << "application/x-tcl"
|
48
|
+
MimeTypes[".msi"] << "application/octet-stream"
|
49
|
+
MimeTypes[".xlw"] << "application/excel"
|
50
|
+
MimeTypes[".xgz"] << "xgl/drawing"
|
51
|
+
MimeTypes[".wsrc"] << "application/x-wais-source"
|
52
|
+
MimeTypes[".vrt"] << "x-world/x-vrt"
|
53
|
+
MimeTypes[".htx"] << "text/html"
|
54
|
+
MimeTypes[".js"] << "text/javascript"
|
55
|
+
MimeTypes[".fif"] << "image/fif"
|
56
|
+
MimeTypes[".pic"] << "image/pict"
|
57
|
+
MimeTypes[".doc"] << "application/msword"
|
58
|
+
MimeTypes[".setpay"] << "application/set-payment-initiation"
|
59
|
+
MimeTypes[".skm"] << "application/x-koan"
|
60
|
+
MimeTypes[".tsv"] << "text/tab-separated-values"
|
61
|
+
MimeTypes[".pdf"] << "application/pdf"
|
62
|
+
MimeTypes[".txt"] << "text/plain"
|
63
|
+
MimeTypes[".ppz"] << "application/mspowerpoint"
|
64
|
+
MimeTypes[".spl"] << "application/futuresplash"
|
65
|
+
MimeTypes[".msm"] << "application/octet-stream"
|
66
|
+
MimeTypes[".rexx"] << "text/x-script.rexx"
|
67
|
+
MimeTypes[".skp"] << "application/x-koan"
|
68
|
+
MimeTypes[".rtx"] << "text/richtext"
|
69
|
+
MimeTypes[".jpeg"] << "image/jpeg"
|
70
|
+
MimeTypes[".tr"] << "application/x-troff"
|
71
|
+
MimeTypes[".css"] << "text/css"
|
72
|
+
MimeTypes[".lam"] << "audio/x-liveaudio"
|
73
|
+
MimeTypes[".msp"] << "application/octet-stream"
|
74
|
+
MimeTypes[".sv4cpio"] << "application/x-sv4cpio"
|
75
|
+
MimeTypes[".cc"] << "text/plain"
|
76
|
+
MimeTypes[".tbk"] << "application/x-tbook"
|
77
|
+
MimeTypes[".class"] << "application/octet-stream"
|
78
|
+
MimeTypes[".png"] << "image/png"
|
79
|
+
MimeTypes[".acgi"] << "text/html"
|
80
|
+
MimeTypes[".psd"] << "application/octet-stream"
|
81
|
+
MimeTypes[".skt"] << "application/x-koan"
|
82
|
+
MimeTypes[".spr"] << "application/x-sprite"
|
83
|
+
MimeTypes[".idc"] << "text/plain"
|
84
|
+
MimeTypes[".bas"] << "text/plain"
|
85
|
+
MimeTypes[".gtar"] << "application/x-gtar"
|
86
|
+
MimeTypes[".bcpio"] << "application/x-bcpio"
|
87
|
+
MimeTypes[".xof"] << "x-world/x-vrml"
|
88
|
+
MimeTypes[".der"] << "application/x-x509-ca-cert"
|
89
|
+
MimeTypes[".mbd"] << "application/mbedlet"
|
90
|
+
MimeTypes[".rmi"] << "audio/mid"
|
91
|
+
MimeTypes[".turbot"] << "image/florian"
|
92
|
+
MimeTypes[".mc"] << "application/x-magic-cap-package-1.0"
|
93
|
+
MimeTypes[".ra"] << "audio/x-realaudio"
|
94
|
+
MimeTypes[".xpix"] << "application/x-vnd.ls-xpix"
|
95
|
+
MimeTypes[".wiz"] << "application/msword"
|
96
|
+
MimeTypes[".cxx"] << "text/plain"
|
97
|
+
MimeTypes[".me"] << "application/x-troff-me"
|
98
|
+
MimeTypes[".lzh"] << "application/x-lzh"
|
99
|
+
MimeTypes[".hh"] << "text/plain"
|
100
|
+
MimeTypes[".arc"] << "application/octet-stream"
|
101
|
+
MimeTypes[".rmm"] << "audio/x-pn-realaudio"
|
102
|
+
MimeTypes[".pnm"] << "image/x-portable-anymap"
|
103
|
+
MimeTypes[".zsh"] << "text/x-script.zsh"
|
104
|
+
MimeTypes[".sid"] << "audio/x-psid"
|
105
|
+
MimeTypes[".pfunk"] << "audio/make.my.funk"
|
106
|
+
MimeTypes[".zip"] << "application/zip"
|
107
|
+
MimeTypes[".wbmp"] << "image/vnd.wap.wbmp"
|
108
|
+
MimeTypes[".rmp"] << "audio/x-pn-realaudio-plugin"
|
109
|
+
MimeTypes[".iii"] << "application/x-iphone"
|
110
|
+
MimeTypes[".snd"] << "audio/x-adpcm"
|
111
|
+
MimeTypes[".rf"] << "image/vnd.rn-realflash"
|
112
|
+
MimeTypes[".mvb"] << "application/x-msmediaview"
|
113
|
+
MimeTypes[".qtc"] << "video/x-qtc"
|
114
|
+
MimeTypes[".rast"] << "image/cmu-raster"
|
115
|
+
MimeTypes[".arj"] << "application/octet-stream"
|
116
|
+
MimeTypes[".ear"] << "application/java-archive"
|
117
|
+
MimeTypes[".mm"] << "application/x-meme"
|
118
|
+
MimeTypes[".funk"] << "audio/make"
|
119
|
+
MimeTypes[".smil"] << "application/smil"
|
120
|
+
MimeTypes[".f90"] << "text/x-fortran"
|
121
|
+
MimeTypes[".vda"] << "application/vda"
|
122
|
+
MimeTypes[".tgz"] << "application/x-compressed"
|
123
|
+
MimeTypes[".clp"] << "application/x-msclip"
|
124
|
+
MimeTypes[".word"] << "application/msword"
|
125
|
+
MimeTypes[".rm"] << "audio/x-pn-realaudio"
|
126
|
+
MimeTypes[".sdp"] << "application/x-sdp"
|
127
|
+
MimeTypes[".uri"] << "text/uri-list"
|
128
|
+
MimeTypes[".latex"] << "application/x-latex"
|
129
|
+
MimeTypes[".mpeg"] << "video/mpeg"
|
130
|
+
MimeTypes[".ssi"] << "text/x-server-parsed-html"
|
131
|
+
MimeTypes[".qti"] << "image/x-quicktime"
|
132
|
+
MimeTypes[".m3u"] << "audio/x-mpegurl"
|
133
|
+
MimeTypes[".dhh"] << "application/david-heinemeier-hansson"
|
134
|
+
MimeTypes[".sdr"] << "application/sounder"
|
135
|
+
MimeTypes[".rp"] << "image/vnd.rn-realpix"
|
136
|
+
MimeTypes[".ms"] << "application/x-troff-ms"
|
137
|
+
MimeTypes[".dmg"] << "application/octet-stream"
|
138
|
+
MimeTypes[".deepv"] << "application/x-deepv"
|
139
|
+
MimeTypes[".iso"] << "application/octet-stream"
|
140
|
+
MimeTypes[".eps"] << "application/postscript"
|
141
|
+
MimeTypes[".jfif-tbnl"] << "image/jpeg"
|
142
|
+
MimeTypes[".ssm"] << "application/streamingmedia"
|
143
|
+
MimeTypes[".lzx"] << "application/x-lzx"
|
144
|
+
MimeTypes[".isp"] << "application/x-internet-signup"
|
145
|
+
MimeTypes[".wp"] << "application/wordperfect"
|
146
|
+
MimeTypes[".ins"] << "application/x-internett-signup"
|
147
|
+
MimeTypes[".art"] << "image/x-jg"
|
148
|
+
MimeTypes[".mv"] << "video/x-sgi-movie"
|
149
|
+
MimeTypes[".fli"] << "video/x-fli"
|
150
|
+
MimeTypes[".sit"] << "application/x-stuffit"
|
151
|
+
MimeTypes[".rt"] << "text/vnd.rn-realtext"
|
152
|
+
MimeTypes[".movie"] << "video/x-sgi-movie"
|
153
|
+
MimeTypes[".hpg"] << "application/vnd.hp-hpgl"
|
154
|
+
MimeTypes[".htmls"] << "text/html"
|
155
|
+
MimeTypes[".sprite"] << "application/x-sprite"
|
156
|
+
MimeTypes[".ram"] << "audio/x-pn-realaudio"
|
157
|
+
MimeTypes[".pbm"] << "image/x-portable-bitmap"
|
158
|
+
MimeTypes[".ncm"] << "application/vnd.nokia.configuration-message"
|
159
|
+
MimeTypes[".bin"] << "application/octet-stream"
|
160
|
+
MimeTypes[".pm4"] << "application/x-pagemaker"
|
161
|
+
MimeTypes[".bsh"] << "application/x-bsh"
|
162
|
+
MimeTypes[".lsf"] << "video/x-la-asf"
|
163
|
+
MimeTypes[".oda"] << "application/oda"
|
164
|
+
MimeTypes[".rv"] << "video/vnd.rn-realvideo"
|
165
|
+
MimeTypes[".pm5"] << "application/x-pagemaker"
|
166
|
+
MimeTypes[".atom"] << "application/atom+xml"
|
167
|
+
MimeTypes[".my"] << "audio/make"
|
168
|
+
MimeTypes[".vsd"] << "application/x-visio"
|
169
|
+
MimeTypes[".dwg"] << "image/x-dwg"
|
170
|
+
MimeTypes[".dcr"] << "application/x-director"
|
171
|
+
MimeTypes[".isu"] << "video/x-isvideo"
|
172
|
+
MimeTypes[".xyz"] << "chemical/x-pdb"
|
173
|
+
MimeTypes[".texi"] << "application/x-texinfo"
|
174
|
+
MimeTypes[".part"] << "application/pro_eng"
|
175
|
+
MimeTypes[".pgm"] << "image/x-portable-greymap"
|
176
|
+
MimeTypes[".g3"] << "image/g3fax"
|
177
|
+
MimeTypes[".ai"] << "application/postscript"
|
178
|
+
MimeTypes[".flo"] << "image/florian"
|
179
|
+
MimeTypes[".a"] << "application/octet-stream"
|
180
|
+
MimeTypes[".xwd"] << "image/x-xwindowdump"
|
181
|
+
MimeTypes[".vdo"] << "video/vdo"
|
182
|
+
MimeTypes[".rar"] << "application/x-rar-compressed"
|
183
|
+
MimeTypes[".sst"] << "application/vnd.ms-pkicertstore"
|
184
|
+
MimeTypes[".wmlsc"] << "application/vnd.wap.wmlscriptc"
|
185
|
+
MimeTypes[".web"] << "application/vnd.xara"
|
186
|
+
MimeTypes[".uris"] << "text/uri-list"
|
187
|
+
MimeTypes[".ras"] << "image/x-cmu-raster"
|
188
|
+
MimeTypes[".c"] << "text/plain"
|
189
|
+
MimeTypes[".cod"] << "image/cis-cod"
|
190
|
+
MimeTypes[".qd3"] << "x-world/x-3dmf"
|
191
|
+
MimeTypes[".flr"] << "x-world/x-vrml"
|
192
|
+
MimeTypes[".xml"] << "text/xml"
|
193
|
+
MimeTypes[".hpgl"] << "application/vnd.hp-hpgl"
|
194
|
+
MimeTypes[".dms"] << "application/octet-stream"
|
195
|
+
MimeTypes[".afl"] << "video/animaflex"
|
196
|
+
MimeTypes[".rpm"] << "audio/x-pn-realaudio-plugin"
|
197
|
+
MimeTypes[".mjf"] << "audio/x-vnd.audioexplosion.mjuicemediafile"
|
198
|
+
MimeTypes[".f"] << "text/x-fortran"
|
199
|
+
MimeTypes[".java"] << "text/x-java-source"
|
200
|
+
MimeTypes[".mod"] << "audio/mod"
|
201
|
+
MimeTypes[".jardiff"] << "application/x-java-archive-diff"
|
202
|
+
MimeTypes[".g"] << "text/plain"
|
203
|
+
MimeTypes[".wk1"] << "application/x-123"
|
204
|
+
MimeTypes[".h"] << "text/plain"
|
205
|
+
MimeTypes[".lsp"] << "text/x-script.lisp"
|
206
|
+
MimeTypes[".sbk"] << "application/x-tbook"
|
207
|
+
MimeTypes[".run"] << "application/x-makeself"
|
208
|
+
MimeTypes[".mp2"] << "audio/mpeg"
|
209
|
+
MimeTypes[".flv"] << "video/x-flv"
|
210
|
+
MimeTypes[".wmlc"] << "application/vnd.wap.wmlc"
|
211
|
+
MimeTypes[".s3m"] << "audio/s3m"
|
212
|
+
MimeTypes[".mp3"] << "audio/mpeg"
|
213
|
+
MimeTypes[".pot"] << "application/vnd.ms-powerpoint"
|
214
|
+
MimeTypes[".exe"] << "application/octet-stream"
|
215
|
+
MimeTypes[".list"] << "text/plain"
|
216
|
+
MimeTypes[".tex"] << "application/x-tex"
|
217
|
+
MimeTypes[".flx"] << "text/vnd.fmi.flexstor"
|
218
|
+
MimeTypes[".text"] << "text/plain"
|
219
|
+
MimeTypes[".x-png"] << "image/png"
|
220
|
+
MimeTypes[".viv"] << "video/vnd.vivo"
|
221
|
+
MimeTypes[".niff"] << "image/x-niff"
|
222
|
+
MimeTypes[".drw"] << "application/drafting"
|
223
|
+
MimeTypes[".lst"] << "text/plain"
|
224
|
+
MimeTypes[".kar"] << "music/x-karaoke"
|
225
|
+
MimeTypes[".cer"] << "application/x-x509-ca-cert"
|
226
|
+
MimeTypes[".m"] << "text/x-m"
|
227
|
+
MimeTypes[".com"] << "text/plain"
|
228
|
+
MimeTypes[".pl"] << "text/x-script.perl"
|
229
|
+
MimeTypes[".uue"] << "text/x-uuencode"
|
230
|
+
MimeTypes[".qcp"] << "audio/vnd.qcelp"
|
231
|
+
MimeTypes[".au"] << "audio/x-au"
|
232
|
+
MimeTypes[".plx"] << "application/x-pixclscript"
|
233
|
+
MimeTypes[".nws"] << "message/rfc822"
|
234
|
+
MimeTypes[".sgm"] << "text/x-sgml"
|
235
|
+
MimeTypes[".hdf"] << "application/x-hdf"
|
236
|
+
MimeTypes[".pm"] << "text/x-script.perl-module"
|
237
|
+
MimeTypes[".wp5"] << "application/wordperfect"
|
238
|
+
MimeTypes[".saveme"] << "application/octet-stream"
|
239
|
+
MimeTypes[".svf"] << "image/x-dwg"
|
240
|
+
MimeTypes[".wp6"] << "application/wordperfect"
|
241
|
+
MimeTypes[".vst"] << "application/x-visio"
|
242
|
+
MimeTypes[".svg"] << "image/svg+xml"
|
243
|
+
MimeTypes[".o"] << "application/octet-stream"
|
244
|
+
MimeTypes[".igs"] << "application/iges"
|
245
|
+
MimeTypes[".pvu"] << "paleovu/x-pv"
|
246
|
+
MimeTypes[".mhtml"] << "message/rfc822"
|
247
|
+
MimeTypes[".p"] << "text/x-pascal"
|
248
|
+
MimeTypes[".m1v"] << "video/mpeg"
|
249
|
+
MimeTypes[".lsx"] << "video/x-la-asf"
|
250
|
+
MimeTypes[".xaf"] << "x-world/x-vrml"
|
251
|
+
MimeTypes[".f77"] << "text/x-fortran"
|
252
|
+
MimeTypes[".xmz"] << "xgl/movie"
|
253
|
+
MimeTypes[".vsw"] << "application/x-visio"
|
254
|
+
MimeTypes[".book"] << "application/book"
|
255
|
+
MimeTypes[".aps"] << "application/mime"
|
256
|
+
MimeTypes[".cpio"] << "application/x-cpio"
|
257
|
+
MimeTypes[".s"] << "text/x-asm"
|
258
|
+
MimeTypes[".ps"] << "application/postscript"
|
259
|
+
MimeTypes[".wtk"] << "application/x-wintalk"
|
260
|
+
MimeTypes[".mjpg"] << "video/x-motion-jpeg"
|
261
|
+
MimeTypes[".t"] << "application/x-troff"
|
262
|
+
MimeTypes[".dump"] << "application/octet-stream"
|
263
|
+
MimeTypes[".jcm"] << "application/x-java-commerce"
|
264
|
+
MimeTypes[".env"] << "application/x-envoy"
|
265
|
+
MimeTypes[".cha"] << "application/x-chat"
|
266
|
+
MimeTypes[".w6w"] << "application/msword"
|
267
|
+
MimeTypes[".sdml"] << "text/plain"
|
268
|
+
MimeTypes[".tcl"] << "text/x-script.tcl"
|
269
|
+
MimeTypes[".rng"] << "application/vnd.nokia.ringing-tone"
|
270
|
+
MimeTypes[".ivr"] << "i-world/i-vrml"
|
271
|
+
MimeTypes[".vqe"] << "audio/x-twinvq-plugin"
|
272
|
+
MimeTypes[".uu"] << "text/x-uuencode"
|
273
|
+
MimeTypes[".pem"] << "application/x-x509-ca-cert"
|
274
|
+
MimeTypes[".nap"] << "image/naplps"
|
275
|
+
MimeTypes[".qd3d"] << "x-world/x-3dmf"
|
276
|
+
MimeTypes[".shar"] << "application/x-shar"
|
277
|
+
MimeTypes[".vqf"] << "audio/x-twinvq"
|
278
|
+
MimeTypes[".mov"] << "video/quicktime"
|
279
|
+
MimeTypes[".pyc"] << "applicaiton/x-bytecode.python"
|
280
|
+
MimeTypes[".py"] << "text/x-script.phyton"
|
281
|
+
MimeTypes[".z"] << "application/x-compressed"
|
282
|
+
MimeTypes[".wmls"] << "text/vnd.wap.wmlscript"
|
283
|
+
MimeTypes[".sea"] << "application/x-sea"
|
284
|
+
MimeTypes[".mcd"] << "application/x-mathcad"
|
285
|
+
MimeTypes[".unis"] << "text/uri-list"
|
286
|
+
MimeTypes[".svr"] << "x-world/x-svr"
|
287
|
+
MimeTypes[".elc"] << "application/x-elc"
|
288
|
+
MimeTypes[".ief"] << "image/ief"
|
289
|
+
MimeTypes[".aif"] << "audio/aiff"
|
290
|
+
MimeTypes[".xhtml"] << "application/xhtml+xml"
|
291
|
+
MimeTypes[".gzip"] << "application/x-gzip"
|
292
|
+
MimeTypes[".nc"] << "application/x-netcdf"
|
293
|
+
MimeTypes[".mcf"] << "text/mcf"
|
294
|
+
MimeTypes[".step"] << "application/step"
|
295
|
+
MimeTypes[".xpi"] << "application/x-xpinstall"
|
296
|
+
MimeTypes[".imap"] << "application/x-httpd-imap"
|
297
|
+
MimeTypes[".mime"] << "www/mime"
|
298
|
+
MimeTypes[".ivy"] << "application/x-livescreen"
|
299
|
+
MimeTypes[".dl"] << "video/dl"
|
300
|
+
MimeTypes[".for"] << "text/x-fortran"
|
301
|
+
MimeTypes[".crd"] << "application/x-mscardfile"
|
302
|
+
MimeTypes[".vql"] << "audio/x-twinvq-plugin"
|
303
|
+
MimeTypes[".mme"] << "application/base64"
|
304
|
+
MimeTypes[".jnlp"] << "application/x-java-jnlp-file"
|
305
|
+
MimeTypes[".xpm"] << "image/xpm"
|
306
|
+
MimeTypes[".trm"] << "application/x-msterminal"
|
307
|
+
MimeTypes[".ani"] << "application/x-navi-animation"
|
308
|
+
MimeTypes[".mrc"] << "application/marc"
|
309
|
+
MimeTypes[".asf"] << "video/x-ms-asf"
|
310
|
+
MimeTypes[".cco"] << "application/x-cocoa"
|
311
|
+
MimeTypes[".zoo"] << "application/octet-stream"
|
312
|
+
MimeTypes[".vrml"] << "x-world/x-vrml"
|
313
|
+
MimeTypes[".dp"] << "application/commonground"
|
314
|
+
MimeTypes[".html"] << "text/html"
|
315
|
+
MimeTypes[".qtif"] << "image/x-quicktime"
|
316
|
+
MimeTypes[".sh"] << "text/x-script.sh"
|
317
|
+
MimeTypes[".wmf"] << "windows/metafile"
|
318
|
+
MimeTypes[".pot"] << "application/vnd.ms-powerpoint"
|
319
|
+
MimeTypes[".aip"] << "text/x-audiosoft-intra"
|
320
|
+
MimeTypes[".wcm"] << "application/vnd.ms-works"
|
321
|
+
MimeTypes[".ksh"] << "text/x-script.ksh"
|
322
|
+
MimeTypes[".mcp"] << "application/netmc"
|
323
|
+
MimeTypes[".ip"] << "application/x-ip2"
|
324
|
+
MimeTypes[".sgml"] << "text/x-sgml"
|
325
|
+
MimeTypes[".pov"] << "model/x-pov"
|
326
|
+
MimeTypes[".rss"] << "text/xml"
|
327
|
+
MimeTypes[".mml"] << "text/mathml"
|
328
|
+
MimeTypes[".crl"] << "application/pkix-crl"
|
329
|
+
MimeTypes[".uni"] << "text/uri-list"
|
330
|
+
MimeTypes[".uil"] << "text/x-uil"
|
331
|
+
MimeTypes[".rgb"] << "image/x-rgb"
|
332
|
+
MimeTypes[".hlb"] << "text/x-script"
|
333
|
+
MimeTypes[".asm"] << "text/x-asm"
|
334
|
+
MimeTypes[".sl"] << "application/x-seelogo"
|
335
|
+
MimeTypes[".rnx"] << "application/vnd.rn-realplayer"
|
336
|
+
MimeTypes[".dif"] << "video/x-dv"
|
337
|
+
MimeTypes[".dv"] << "video/x-dv"
|
338
|
+
MimeTypes[".chat"] << "application/x-chat"
|
339
|
+
MimeTypes[".inf"] << "application/inf"
|
340
|
+
MimeTypes[".it"] << "audio/it"
|
341
|
+
MimeTypes[".pma"] << "application/x-perfmon"
|
342
|
+
MimeTypes[".xl"] << "application/excel"
|
343
|
+
MimeTypes[".wri"] << "application/mswrite"
|
344
|
+
MimeTypes[".wml"] << "text/vnd.wap.wml"
|
345
|
+
MimeTypes[".sol"] << "application/solids"
|
346
|
+
MimeTypes[".asp"] << "text/asp"
|
347
|
+
MimeTypes[".xm"] << "audio/xm"
|
348
|
+
MimeTypes[".jfif"] << "image/pjpeg"
|
349
|
+
MimeTypes[".nif"] << "image/x-niff"
|
350
|
+
MimeTypes[".fmf"] << "video/x-atomic3d-feature"
|
351
|
+
MimeTypes[".iv"] << "application/x-inventor"
|
352
|
+
MimeTypes[".pmc"] << "application/x-perfmon"
|
353
|
+
MimeTypes[".mht"] << "message/rfc822"
|
354
|
+
MimeTypes[".roff"] << "application/x-troff"
|
355
|
+
MimeTypes[".stl"] << "application/x-navistyle"
|
356
|
+
MimeTypes[".talk"] << "text/x-speech"
|
357
|
+
MimeTypes[".asr"] << "video/x-ms-asf"
|
358
|
+
MimeTypes[".set"] << "application/set"
|
359
|
+
MimeTypes[".wrl"] << "application/x-world"
|
360
|
+
MimeTypes[".jam"] << "audio/x-jam"
|
361
|
+
MimeTypes[".abc"] << "text/vnd.abc"
|
362
|
+
MimeTypes[".stm"] << "text/html"
|
363
|
+
MimeTypes[".jpe"] << "image/jpeg"
|
364
|
+
MimeTypes[".sv4crc"] << "application/x-sv4crc"
|
365
|
+
MimeTypes[".voc"] << "audio/x-voc"
|
366
|
+
MimeTypes[".prc"] << "application/x-pilot"
|
367
|
+
MimeTypes[".m2a"] << "audio/mpeg"
|
368
|
+
MimeTypes[".nsc"] << "application/x-conference"
|
369
|
+
MimeTypes[".help"] << "application/x-helpfile"
|
370
|
+
MimeTypes[".hgl"] << "application/vnd.hp-hpgl"
|
371
|
+
MimeTypes[".crt"] << "application/x-x509-ca-cert"
|
372
|
+
MimeTypes[".xif"] << "image/vnd.xiff"
|
373
|
+
MimeTypes[".pcl"] << "application/x-pcl"
|
374
|
+
MimeTypes[".log"] << "text/plain"
|
375
|
+
MimeTypes[".jpg"] << "image/jpeg"
|
376
|
+
MimeTypes[".ustar"] << "multipart/x-ustar"
|
377
|
+
MimeTypes[".cmx"] << "image/x-cmx"
|
378
|
+
MimeTypes[".pre"] << "application/x-freelance"
|
379
|
+
MimeTypes[".axs"] << "application/olescript"
|
380
|
+
MimeTypes[".bz2"] << "application/x-bzip2"
|
381
|
+
MimeTypes[".mpv2"] << "video/mpeg"
|
382
|
+
MimeTypes[".moov"] << "video/quicktime"
|
383
|
+
MimeTypes[".prf"] << "application/pics-rules"
|
384
|
+
MimeTypes[".dxf"] << "image/x-dwg"
|
385
|
+
MimeTypes[".stp"] << "application/step"
|
386
|
+
MimeTypes[".conf"] << "text/plain"
|
387
|
+
MimeTypes[".asx"] << "video/x-ms-asf"
|
388
|
+
MimeTypes[".la"] << "audio/x-nspaudio"
|
389
|
+
MimeTypes[".jar"] << "application/java-archive"
|
390
|
+
MimeTypes[".wmv"] << "video/x-ms-wmv"
|
391
|
+
MimeTypes[".unv"] << "application/i-deas"
|
392
|
+
MimeTypes[".boo"] << "application/book"
|
393
|
+
MimeTypes[".ima"] << "application/x-ima"
|
394
|
+
MimeTypes[".dir"] << "application/x-director"
|
395
|
+
MimeTypes[".frl"] << "application/freeloader"
|
396
|
+
MimeTypes[".wb1"] << "application/x-qpro"
|
397
|
+
MimeTypes[".hlp"] << "application/hlp"
|
398
|
+
MimeTypes[".tar"] << "application/x-tar"
|
399
|
+
MimeTypes[".scd"] << "application/x-msschedule"
|
400
|
+
MimeTypes[".pml"] << "application/x-perfmon"
|
401
|
+
MimeTypes[".evy"] << "application/x-envoy"
|
402
|
+
MimeTypes[".gif"] << "image/gif"
|
403
|
+
MimeTypes[".jav"] << "text/x-java-source"
|
404
|
+
MimeTypes[".pct"] << "image/x-pict"
|
405
|
+
MimeTypes[".mpa"] << "audio/mpeg"
|
406
|
+
MimeTypes[".xdr"] << "video/x-amt-demorun"
|
407
|
+
MimeTypes[".bm"] << "image/bmp"
|
408
|
+
MimeTypes[".mpc"] << "application/x-project"
|
409
|
+
MimeTypes[".qif"] << "image/x-quicktime"
|
410
|
+
MimeTypes[".gl"] << "video/x-gl"
|
411
|
+
MimeTypes[".img"] << "application/octet-stream"
|
412
|
+
MimeTypes[".gsd"] << "audio/x-gsm"
|
413
|
+
MimeTypes[".xsl"] << "application/xslt+xml"
|
414
|
+
MimeTypes[".pcx"] << "image/x-pcx"
|
415
|
+
MimeTypes[".pmr"] << "application/x-perfmon"
|
416
|
+
MimeTypes[".jps"] << "image/x-jps"
|
417
|
+
MimeTypes[".mpe"] << "video/mpeg"
|
418
|
+
MimeTypes[".src"] << "application/x-wais-source"
|
419
|
+
MimeTypes[".man"] << "application/x-troff-man"
|
420
|
+
MimeTypes[".wpd"] << "application/wordperfect"
|
421
|
+
MimeTypes[".vew"] << "application/groupwise"
|
422
|
+
MimeTypes[".dxr"] << "application/x-director"
|
423
|
+
MimeTypes[".mpg"] << "video/mpeg"
|
424
|
+
MimeTypes[".ico"] << "image/x-icon"
|
425
|
+
MimeTypes[".wq1"] << "application/x-lotus"
|
426
|
+
MimeTypes[".scm"] << "video/x-scm"
|
427
|
+
MimeTypes[".map"] << "application/x-navimap"
|
428
|
+
MimeTypes[".nix"] << "application/x-mix-transfer"
|
429
|
+
MimeTypes[".vos"] << "video/vosaic"
|
430
|
+
MimeTypes[".boz"] << "application/x-bzip2"
|
431
|
+
MimeTypes[".jut"] << "image/jutvision"
|
432
|
+
MimeTypes[".cat"] << "application/octet-stream"
|
433
|
+
MimeTypes[".lha"] << "application/x-lha"
|
434
|
+
MimeTypes[".p7a"] << "application/x-pkcs7-signature"
|
435
|
+
MimeTypes[".avi"] << "video/avi"
|
436
|
+
MimeTypes[".prt"] << "application/pro_eng"
|
437
|
+
MimeTypes[".pmw"] << "application/x-perfmon"
|
438
|
+
MimeTypes[".smi"] << "application/smil"
|
439
|
+
MimeTypes[".p7b"] << "application/x-pkcs7-certificates"
|
440
|
+
MimeTypes[".mar"] << "text/plain"
|
441
|
+
MimeTypes[".xsr"] << "video/x-amt-showrun"
|
442
|
+
MimeTypes[".tiff"] << "image/tiff"
|
443
|
+
MimeTypes[".hqx"] << "application/binhex"
|
444
|
+
MimeTypes[".p7c"] << "application/x-pkcs7-mime"
|
445
|
+
MimeTypes[".lma"] << "audio/x-nspaudio"
|
446
|
+
MimeTypes[".swf"] << "application/x-shockwave-flash"
|
447
|
+
MimeTypes[".war"] << "application/java-archive"
|
448
|
+
MimeTypes[".vcd"] << "application/x-cdlink"
|
449
|
+
MimeTypes[".cpp"] << "text/x-c"
|
450
|
+
MimeTypes[".gsm"] << "audio/x-gsm"
|
451
|
+
MimeTypes[".vox"] << "audio/voxware"
|
452
|
+
MimeTypes[".m2v"] << "video/mpeg"
|
453
|
+
MimeTypes[".ltx"] << "application/x-latex"
|
454
|
+
MimeTypes[".xla"] << "application/excel"
|
455
|
+
MimeTypes[".vcf"] << "text/x-vcard"
|
456
|
+
MimeTypes[".sct"] << "text/scriptlet"
|
457
|
+
MimeTypes[".ppa"] << "application/vnd.ms-powerpoint"
|
458
|
+
MimeTypes[".aifc"] << "audio/aiff"
|
459
|
+
MimeTypes[".hta"] << "application/hta"
|
460
|
+
MimeTypes[".bz"] << "application/x-bzip"
|
461
|
+
MimeTypes[".omcd"] << "application/x-omcdatamaker"
|
462
|
+
MimeTypes[".mpp"] << "application/vnd.ms-project"
|
463
|
+
MimeTypes[".pict"] << "image/pict"
|
464
|
+
MimeTypes[".gsp"] << "application/x-gsp"
|
465
|
+
MimeTypes[".xlb"] << "application/excel"
|
466
|
+
MimeTypes[".wav"] << "audio/x-wav"
|
467
|
+
MimeTypes[".eot"] << "application/octet-stream"
|
468
|
+
MimeTypes[".cpt"] << "application/x-cpt"
|
469
|
+
MimeTypes[".naplps"] << "image/naplps"
|
470
|
+
MimeTypes[".htc"] << "text/x-component"
|
471
|
+
MimeTypes[".xlc"] << "application/excel"
|
472
|
+
MimeTypes[".vmd"] << "application/vocaltec-media-desc"
|
473
|
+
MimeTypes[".tif"] << "image/tiff"
|
474
|
+
MimeTypes[".pkg"] << "application/x-newton-compatible-pkg"
|
475
|
+
MimeTypes[".jng"] << "image/x-jng"
|
476
|
+
MimeTypes[".qt"] << "video/quicktime"
|
477
|
+
MimeTypes[".tcsh"] << "text/x-script.tcsh"
|
478
|
+
MimeTypes[".aiff"] << "audio/aiff"
|
479
|
+
MimeTypes[".xld"] << "application/excel"
|
480
|
+
MimeTypes[".pub"] << "application/x-mspublisher"
|
481
|
+
MimeTypes[".pwz"] << "application/vnd.ms-powerpoint"
|
482
|
+
MimeTypes[".gss"] << "application/x-gss"
|
483
|
+
MimeTypes[".avs"] << "video/avs-video"
|
484
|
+
MimeTypes[".gz"] << "application/x-compressed"
|
485
|
+
MimeTypes[".wks"] << "application/vnd.ms-works"
|
486
|
+
MimeTypes[".uls"] << "text/iuls"
|
487
|
+
MimeTypes[".dll"] << "application/octet-stream"
|
488
|
+
MimeTypes[".vmf"] << "application/vocaltec-media-file"
|
489
|
+
MimeTypes[".mdb"] << "application/x-msaccess"
|
490
|
+
MimeTypes[".nvd"] << "application/x-navidoc"
|
491
|
+
MimeTypes[".mpt"] << "application/x-project"
|
492
|
+
MimeTypes[".p7m"] << "application/x-pkcs7-mime"
|
493
|
+
MimeTypes[".xbm"] << "image/xbm"
|
494
|
+
MimeTypes[".cdf"] << "application/cdf"
|
495
|
+
MimeTypes[".wps"] << "application/vnd.ms-works"
|
496
|
+
MimeTypes[".rtf"] << "text/richtext"
|
497
|
+
MimeTypes[".mpv"] << "application/x-project"
|
498
|
+
MimeTypes[".m13"] << "application/x-msmediaview"
|
499
|
+
MimeTypes[".dvi"] << "application/x-dvi"
|
500
|
+
MimeTypes[".shtml"] << "text/x-server-parsed-html"
|
501
|
+
MimeTypes[".vivo"] << "video/vnd.vivo"
|
502
|
+
MimeTypes[".setreg"] << "application/set-registration-initiation"
|
503
|
+
MimeTypes[".etx"] << "text/x-setext"
|
504
|
+
MimeTypes[".bmp"] << "image/bmp"
|
505
|
+
MimeTypes[".m14"] << "application/x-msmediaview"
|
506
|
+
MimeTypes[".wdb"] << "application/vnd.ms-works"
|
507
|
+
MimeTypes[".mpx"] << "application/x-project"
|
508
|
+
MimeTypes[".midi"] << "audio/x-midi"
|
509
|
+
MimeTypes[".pas"] << "text/pascal"
|
510
|
+
MimeTypes[".xlk"] << "application/excel"
|
511
|
+
MimeTypes[".w60"] << "application/wordperfect6.0"
|
512
|
+
MimeTypes[".tsi"] << "audio/tsp-audio"
|
513
|
+
MimeTypes[".mid"] << "audio/x-midi"
|
514
|
+
MimeTypes[".p7r"] << "application/x-pkcs7-certreqresp"
|
515
|
+
MimeTypes[".xll"] << "application/excel"
|
516
|
+
MimeTypes[".w61"] << "application/wordperfect6.1"
|
517
|
+
MimeTypes[".ppm"] << "image/x-portable-pixmap"
|
518
|
+
MimeTypes[".p7s"] << "application/x-pkcs7-signature"
|
519
|
+
MimeTypes[".htm"] << "text/html"
|
520
|
+
MimeTypes[".pko"] << "application/ynd.ms-pkipko"
|
521
|
+
MimeTypes[".xlm"] << "application/excel"
|
522
|
+
MimeTypes[".vcs"] << "text/x-vcalendar"
|
523
|
+
MimeTypes[".omc"] << "application/x-omc"
|
524
|
+
MimeTypes[".mif"] << "application/x-mif"
|
525
|
+
|
526
|
+
# MIME type to extension mapping.
|
527
|
+
#
|
528
|
+
# Broadly the inverse of MimeTypes, but there may be
|
529
|
+
# some differences in usage. MimeExts type indexes
|
530
|
+
# always point to an Array of extensions.
|
531
|
+
#
|
532
|
+
# @see MimeTypes
|
533
|
+
#
|
534
|
+
MimeExts = Hash.new {|h, k| h[k] = [] }
|
535
|
+
|
536
|
+
# Build MimeExts
|
537
|
+
MimeTypes.each {|key, values|
|
538
|
+
values.each {|value| MimeExts[value] << key }
|
539
|
+
}
|
540
|
+
|
541
|
+
end
|
542
|
+
|