Class: Rails::Server

Inherits:
Rack::Server
  • Object
show all
Defined in:
lib/rails/commands/server/server_command.rb

Defined Under Namespace

Classes: Options

Instance Method Summary collapse

Constructor Details

#initialize(options = nil) ⇒ Server

Returns a new instance of Server.



15
16
17
18
19
# File 'lib/rails/commands/server/server_command.rb', line 15

def initialize(options = nil)
  @default_options = options || {}
  super(@default_options)
  set_environment
end

Instance Method Details

#appObject

TODO: this is no longer required but we keep it for the moment to support older config.ru files.



22
23
24
25
26
27
# File 'lib/rails/commands/server/server_command.rb', line 22

def app
  @app ||= begin
    app = super
    app.respond_to?(:to_app) ? app.to_app : app
  end
end

#default_optionsObject



55
56
57
# File 'lib/rails/commands/server/server_command.rb', line 55

def default_options
  super.merge(@default_options)
end

#middlewareObject



51
52
53
# File 'lib/rails/commands/server/server_command.rb', line 51

def middleware
  Hash.new([])
end

#opt_parserObject



29
30
31
# File 'lib/rails/commands/server/server_command.rb', line 29

def opt_parser
  Options.new
end

#set_environmentObject



33
34
35
# File 'lib/rails/commands/server/server_command.rb', line 33

def set_environment
  ENV["RAILS_ENV"] ||= options[:environment]
end

#startObject



37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/rails/commands/server/server_command.rb', line 37

def start
  print_boot_information
  trap(:INT) { exit }
  create_tmp_directories
  setup_dev_caching
  log_to_stdout if options[:log_stdout]

  super
ensure
  # The '-h' option calls exit before @options is set.
  # If we call 'options' with it unset, we get double help banners.
  puts "Exiting" unless @options && options[:daemonize]
end