123456789_123456789_123456789_123456789_123456789_

Class: Rails::Server

Relationships & Source Files
Namespace Children
Classes:
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
self, Rack::Server
Instance Chain:
self, Rack::Server
Inherits: Rack::Server
Defined in: railties/lib/rails/commands/server.rb

Class Method Summary

Instance Method Summary

Constructor Details

.newServer

[ GitHub ]

  
# File 'railties/lib/rails/commands/server.rb', line 53

def initialize(*)
  super
  set_environment
end

Instance Method Details

#app

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

[ GitHub ]

  
# File 'railties/lib/rails/commands/server.rb', line 59

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

#default_options

[ GitHub ]

  
# File 'railties/lib/rails/commands/server.rb', line 109

def default_options
  super.merge({
    Port:               3000,
    DoNotReverseLookup: true,
    environment:        (ENV['RAILS_ENV'] || ENV['RACK_ENV'] || "development").dup,
    daemonize:          false,
    debugger:           false,
    pid:                File.expand_path("tmp/pids/server.pid"),
    config:             File.expand_path("config.ru")
  })
end

#log_path

[ GitHub ]

  
# File 'railties/lib/rails/commands/server.rb', line 105

def log_path
  "log/#{options[:environment]}.log"
end

#middleware

[ GitHub ]

  
# File 'railties/lib/rails/commands/server.rb', line 87

def middleware
  middlewares = []
  if RUBY_VERSION < '2.0.0'
    middlewares << [Rails::Rack::Debugger] if options[:debugger]
  end
  middlewares << [::Rack::ContentLength]

  # FIXME: add Rack::Lock in the case people are using webrick.
  # This is to remain backwards compatible for those who are
  # running webrick in production. We should consider removing this
  # in development.
  if server.name == 'Rack::Handler::WEBrick'
    middlewares << [::Rack::Lock]
  end

  Hash.new(middlewares)
end

#opt_parser

[ GitHub ]

  
# File 'railties/lib/rails/commands/server.rb', line 66

def opt_parser
  Options.new
end

#set_environment

[ GitHub ]

  
# File 'railties/lib/rails/commands/server.rb', line 70

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

#start

[ GitHub ]

  
# File 'railties/lib/rails/commands/server.rb', line 74

def start
  print_boot_information
  trap(:INT) { exit }
  create_tmp_directories
  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