On this page
class Rails::Server
Public Class Methods
# File railties/lib/rails/commands/server.rb, line 53
def initialize(*)
super
set_environment
end
Calls superclass method
Public Instance Methods
# 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
TODO: this is no longer required but we keep it for the moment to support older config.ru files.
Calls superclass method
# 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
Calls superclass method
# File railties/lib/rails/commands/server.rb, line 105
def log_path
"log/#{options[:environment]}.log"
end
# 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
# File railties/lib/rails/commands/server.rb, line 66
def opt_parser
Options.new
end
# File railties/lib/rails/commands/server.rb, line 70
def set_environment
ENV["RAILS_ENV"] ||= options[:environment]
end
# 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
Calls superclass method
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.