# Class: YARD::Server::Commands::DisplayObjectCommand

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

Includes:
  DocServerHelper

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

## Overview

Displays documentation for a specific object identified by the path

Since:

- 0.6.0

## Direct Known Subclasses

FramesCommand

## Instance Method Summary collapse

- #index ⇒ Object
- #not_found ⇒ Object
- #run ⇒ Object

### Methods included from DocServerHelper

#abs_url, #base_path, #mtime, #mtime_url, #router, #url_for, #url_for_file, #url_for_frameset, #url_for_index, #url_for_list, #url_for_main

### Methods included from StaticCaching

#cache, #check_static_cache

## Constructor Details

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

## Instance Method Details

### #index ⇒ `Object`

Since:

- 0.6.0

    36
    37
    38
    39
    40
    41
    42
    43
    44
    45

    # File 'lib/yard/server/commands/display_object_command.rb', line 36

    def index
      Registry.load_all

      options.update(
        :object => '_index.html',
        :objects => Registry.all(:module, :class),
        :type => :layout
      )
      render
    end

### #not_found ⇒ `Object`

Since:

- 0.6.0

    47
    48
    49
    50

    # File 'lib/yard/server/commands/display_object_command.rb', line 47

    def not_found
      super
      self.body = "Could not find object: #{object_path}"
    end

### #run ⇒ `Object`

Since:

- 0.6.0

    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34

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

    def run
      if path.empty?
        if options.readme
          filename = options.readme.filename
          opts = adapter.options.merge(
            :index => true, :library => library,
            :path => filename.sub(%r{^#{library.source_path.to_s}/}, '')
          )
          self.status, self.headers, self.body =
            *DisplayFileCommand.new(opts).call(request)
          cache(body)
          return
        else
          self.path = 'index'
        end
      end
      return index if path == 'index'

      object = Registry.at(object_path)
      if object
        options.update(:type => :layout)
        render(object)
      else
        not_found
      end
    end