Module: YARD::Server::Commands::StaticFileHelpers

Includes:
WEBrick::HTTPUtils
Included in:
RootRequestCommand, StaticFileCommand
Defined in:
lib/yard/server/commands/static_file_helpers.rb

Overview

Include this module to get access to #static_template_file? and #favicon? helpers.

Since:

  • 0.6.0

Instance Method Summary collapse

Instance Method Details

#favicon?Boolean

Serves an empty favicon.

Returns:

  • (Boolean)

Raises:

  • (FinishRequest)

    finalizes an empty body if the path matches /favicon.ico so browsers don't complain.

Since:

  • 0.6.0


14
15
16
17
18
19
20
# File 'lib/yard/server/commands/static_file_helpers.rb', line 14

def favicon?
  return unless request.path == '/favicon.ico'
  self.headers['Content-Type'] = 'image/png'
  self.status = 200
  self.body = ''
  raise FinishRequest
end

#static_template_file?void

This method returns an undefined value.

Attempts to route a path to a static template file.

Raises:

Since:

  • 0.6.0


26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/yard/server/commands/static_file_helpers.rb', line 26

def static_template_file?
  # these consts were defined in StaticFileCommand originally 
  static_paths = StaticFileCommand::STATIC_PATHS
  default_mime_types = StaticFileCommand::DefaultMimeTypes

  assets_template = Templates::Engine.template(:default, :fulldoc, :html)

  file = nil
  ([adapter.document_root] + static_paths.reverse).compact.each do |path_prefix|
    file = File.join(path_prefix, path)
    break if File.exist?(file)
    file = nil
  end

  # Search in default/fulldoc/html template if nothing in static asset paths
  file ||= assets_template.find_file(path)

  if file
    ext = "." + (path[/\.(\w+)$/, 1] || "html")
    headers['Content-Type'] = mime_type(ext, default_mime_types)
    self.body = File.read(file)
    raise FinishRequest
  end
end