Class: Webcmd::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/webcmd/server.rb

Instance Method Summary collapse

Instance Method Details

#default_optionsObject



20
21
22
23
24
25
26
27
28
# File 'lib/webcmd/server.rb', line 20

def default_options
  {
    Host: '0.0.0.0',
    Port: 9292,
    environment: 'production',
    server: :puma,
    Threads: '0:1'
  }
end

#optionsObject



30
31
32
33
34
35
# File 'lib/webcmd/server.rb', line 30

def options
  @options ||= begin
    options = Options.new(ARGV).parse!
    default_options.merge(options)
  end
end

#startObject



37
38
39
# File 'lib/webcmd/server.rb', line 37

def start
  Rack::Server.start options.merge(app: wrapped_app)
end

#wrapped_appObject



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/webcmd/server.rb', line 7

def wrapped_app
  @wrapped_app ||= begin
    app = App.new(options[:app])

    Rack::Builder.new do
      use Rack::Logger
      use Rack::CommonLogger
      use Rack::Chunked
      run app
    end
  end
end