Class: YARD::Server::Commands::StaticFileCommand
- Includes:
- WEBrick::HTTPUtils
- Defined in:
- lib/yard/server/commands/static_file_command.rb
Overview
Serves static content when no other router matches a request
Constant Summary collapse
- STATIC_PATHS =
Defines the paths used to search for static assets. To define an extra path, use YARD::Server.register_static_path rather than modifying this constant directly. Also note that files in the document root will always take precedence over these paths.
[ File.join(YARD::TEMPLATE_ROOT, 'default', 'fulldoc', 'html'), File.join(File.dirname(__FILE__), '..', 'templates', 'default', 'fulldoc', 'html') ]
Instance Method Summary collapse
Constructor Details
This class inherits a constructor from YARD::Server::Commands::Base
Instance Method Details
#run ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/yard/server/commands/static_file_command.rb', line 21 def run path = File.cleanpath(request.path).gsub(%r{^(../)+}, '') ([adapter.document_root] + STATIC_PATHS.reverse).compact.each do |path_prefix| file = File.join(path_prefix, path) if File.exist?(file) ext = "." + (request.path[/\.(\w+)$/, 1] || "html") headers['Content-Type'] = mime_type(ext, DefaultMimeTypes) self.body = File.read(file) return end end favicon? self.status = 404 end |