Class | YARD::Server::Adapter
In: | lib/yard/server/adapter.rb
Parent: | Object

This class implements the bridge between the {Router} and the server backend for a specific server type. YARD implements concrete adapters for WEBrick and Rack respectively, though other adapters can be made for other server architectures.

## Subclassing Notes

To create a concrete adapter class, implement the {start} method to initiate the server backend.

@abstract

### Methods

add_library new setup shutdown start

### Attributes

document_root

[RW]

@return [String] the location where static files are located, if any.

      To set this field on initialization, pass +:DocumentRoot+ to the
      +server_opts+ argument in {#initialize}

libraries | [RW] | @return [Hash{String=>Array<LibraryVersion>}] a map of libraries. @see LibraryVersion LibraryVersion for information on building a list of libraries @see add_library

options

[RW]

@return [Hash] options passed and processed by adapters. The actual

      options mostly depend on the adapters themselves.

router | [RW] | @return [Router] the router object used to route URLs to commands

server_options

[RW]

@return [Hash] a set of options to pass to the server backend. Note

      that +:DocumentRoot+ also sets the {#document_root}.

### Public Class methods

new(libs, opts = {}, server_opts = {})

Creates a new adapter object

@param [Hash{String=>Array<LibraryVersion>}] libs a list of libraries,

      see {#libraries} for formulating this list.

@param [Hash] opts extra options to pass to the adapter @option opts [Class] :router (Router) the router class to initialize as the

      adapter's router.

@option opts [Boolean] :caching (false) whether or not caching is enabled @option opts [Boolean] :single_library (false) whether to server documentation

      for a single or multiple libraries (changes URL structure)

setup()

Performs any global initialization for the adapter. @note If you subclass this method, make sure to call `super`. @return [void]

shutdown()

Performs any global shutdown procedures for the adapter. @note If you subclass this method, make sure to call `super`. @return [void]

### Public Instance methods

add_library(library)

Adds a library to the {libraries} mapping for a given library object. @example Adding a new library to an adapter

      adapter.add_library LibraryVersion.new('mylib', '1.0', '/path/to/.yardoc')

@param [LibraryVersion] library a library to add

start()

Implement this method to connect your adapter to your server. @abstract

[Validate]