Class: Hanami::Server Private

Inherits:
Rack::Server
  • Object
show all
Defined in:
lib/hanami/server.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Rack compatible server.

It is run with:

`bundle exec hanami server`

It runs the application, by using the server specified in your `Gemfile` (eg. Puma or Unicorn).

Since:

  • 0.8.0

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeServer

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Server

See Also:

Since:

  • 0.8.0



23
24
25
26
# File 'lib/hanami/server.rb', line 23

def initialize
  @options = _extract_options
  setup
end

Instance Attribute Details

#optionsObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 0.8.0



17
18
19
# File 'lib/hanami/server.rb', line 17

def options
  @options
end

Instance Method Details

#middlewareObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Primarily this removes the ::Rack::Chunked middleware which is the cause of Safari content-length bugs.

Since:

  • 0.8.0



32
33
34
35
36
37
38
# File 'lib/hanami/server.rb', line 32

def middleware
  mw = Hash.new { |e, m| e[m] = [] }
  mw["development"].concat([::Rack::ShowExceptions, ::Rack::Lint])
  require 'hanami/assets/static'
  mw["development"].push(::Hanami::Assets::Static)
  mw
end

#startObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Since:

  • 0.8.0



41
42
43
44
# File 'lib/hanami/server.rb', line 41

def start
  preload
  super
end