# Class: YARD::Server::Commands::DisplayFileCommand

Inherits:
  LibraryCommand
  - Object
  - Base
  - LibraryCommand
  - YARD::Server::Commands::DisplayFileCommand
  show all

Defined in:
  lib/yard/server/commands/display_file_command.rb

## Overview

TODO:

Implement better support for detecting binary (image) filetypes

Displays a README or extra file.

Since:

- 0.6.0

## Instance Attribute Summary collapse

- #index ⇒ Object

## Instance Method Summary collapse

- #run ⇒ Object

## Constructor Details

This class inherits a constructor from YARD::Server::Commands::LibraryCommand

## Instance Attribute Details

### #index ⇒ `Object`

Since:

- 0.6.0

    9
    10
    11

    # File 'lib/yard/server/commands/display_file_command.rb', line 9

    def index
      @index
    end

## Instance Method Details

### #run ⇒ `Object`

Raises:

- (`NotFoundError`)

Since:

- 0.6.0

    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25

    # File 'lib/yard/server/commands/display_file_command.rb', line 11

    def run
      filename = File.cleanpath(File.join(library.source_path, path))
      raise NotFoundError unless File.file?(filename)
      if filename =~ /\.(jpe?g|gif|png|bmp|svg)$/i
        headers['Content-Type'] = StaticFileCommand::DefaultMimeTypes[$1.downcase] || 'text/html'
        render File.read_binary(filename)
      else
        file = CodeObjects::ExtraFileObject.new(filename)
        options.update :object => Registry.root,
                       :type => :layout,
                       :file => file,
                       :index => index ? true : false
        render
      end
    end