From 17ef7067c86be4e01ac8320ade4f2787c9d7aa57 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Fri, 9 Sep 2005 09:07:43 +0000 Subject: Added -m/--mime-types option to the WEBrick server, so you can specify a Apache-style mime.types file to load #2059 [ask@develooper.com] git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2175 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- railties/CHANGELOG | 4 +++- railties/bin/server | 16 ++++++++++------ railties/lib/webrick_server.rb | 10 +++++++--- 3 files changed, 20 insertions(+), 10 deletions(-) (limited to 'railties') diff --git a/railties/CHANGELOG b/railties/CHANGELOG index 81de077c39..06183484a4 100644 --- a/railties/CHANGELOG +++ b/railties/CHANGELOG @@ -1,8 +1,10 @@ *SVN* +* Added -m/--mime-types option to the WEBrick server, so you can specify a Apache-style mime.types file to load #2059 [ask@develooper.com] + * Added -c/--svn option to the generator that'll add new files and remove destroyed files using svn add/revert/remove as appropriate #2064 [kevin.clark@gmail.com] -* Added -c/--charset option to WEBrick controller, so you can specify a default charset (which without changes is UTF-8) #2084 [wejn@box.cz] +* Added -c/--charset option to WEBrick server, so you can specify a default charset (which without changes is UTF-8) #2084 [wejn@box.cz] * Make the default stats task extendable by modifying the STATS_DIRECTORIES constant diff --git a/railties/bin/server b/railties/bin/server index 3a8cc68258..38f35c4285 100644 --- a/railties/bin/server +++ b/railties/bin/server @@ -4,12 +4,12 @@ require 'webrick' require 'optparse' OPTIONS = { - :port => 3000, - :ip => "0.0.0.0", - :environment => "development", - :server_root => File.expand_path(File.dirname(__FILE__) + "/../public/"), - :server_type => WEBrick::SimpleServer, - :charset => "UTF-8" + :port => 3000, + :ip => "0.0.0.0", + :environment => "development", + :server_root => File.expand_path(File.dirname(__FILE__) + "/../public/"), + :server_type => WEBrick::SimpleServer, + :charset => "UTF-8" } ARGV.options do |opts| @@ -27,6 +27,10 @@ ARGV.options do |opts| opts.on("-e", "--environment=name", String, "Specifies the environment to run this server under (test/development/production).", "Default: development") { |OPTIONS[:environment]| } + opts.on("-m", "--mime-types=filename", String, + "Specifies an Apache style mime.types configuration file to be used for mime types", + "Default: none") { |mime_types_file| OPTIONS[:mime_types] = WEBrick::HTTPUtils::load_mime_types(mime_types_file) } + opts.on("-d", "--daemon", "Make Rails run as a Daemon (only works if fork is available -- meaning on *nix)." ) { OPTIONS[:server_type] = WEBrick::Daemon } diff --git a/railties/lib/webrick_server.rb b/railties/lib/webrick_server.rb index 4a73872ba3..f3938b7419 100644 --- a/railties/lib/webrick_server.rb +++ b/railties/lib/webrick_server.rb @@ -46,7 +46,11 @@ class DispatchServlet < WEBrick::HTTPServlet::AbstractServlet def self.dispatch(options = {}) Socket.do_not_reverse_lookup = true # patch for OS X - server = WEBrick::HTTPServer.new(:Port => options[:port].to_i, :ServerType => options[:server_type], :BindAddress => options[:ip]) + server = WEBrick::HTTPServer.new(:Port => options[:port].to_i, + :ServerType => options[:server_type], + :BindAddress => options[:ip], + :MimeTypes => options[:mime_types] + ) server.mount('/', DispatchServlet, options) trap("INT") { server.shutdown } @@ -89,8 +93,8 @@ class DispatchServlet < WEBrick::HTTPServlet::AbstractServlet path.gsub!('+', ' ') # Unescape + since FileHandler doesn't do so. req.instance_variable_set(:@path_info, path) # Set the modified path... - - @file_handler.send(:service, req, res) + + @file_handler.send(:service, req, res) return true rescue HTTPStatus::PartialContent, HTTPStatus::NotModified => err res.set_error(err) -- cgit v1.2.3