Class: Rails::Server
- Inherits:
-
Rack::Server
- Object
- Rack::Server
- Rails::Server
- Defined in:
- lib/rails/commands/server.rb
Defined Under Namespace
Classes: Options
Instance Method Summary collapse
-
#app ⇒ Object
TODO: this is no longer required but we keep it for the moment to support older config.ru files.
- #default_options ⇒ Object
-
#initialize ⇒ Server
constructor
A new instance of Server.
- #log_path ⇒ Object
- #middleware ⇒ Object
- #opt_parser ⇒ Object
- #set_environment ⇒ Object
- #start ⇒ Object
Constructor Details
#initialize ⇒ Server
Returns a new instance of Server.
40 41 42 43 |
# File 'lib/rails/commands/server.rb', line 40 def initialize(*) super set_environment end |
Instance Method Details
#app ⇒ Object
TODO: this is no longer required but we keep it for the moment to support older config.ru files.
46 47 48 49 50 51 |
# File 'lib/rails/commands/server.rb', line 46 def app @app ||= begin app = super app.respond_to?(:to_app) ? app.to_app : app end end |
#default_options ⇒ Object
111 112 113 114 115 116 117 118 119 120 121 |
# File 'lib/rails/commands/server.rb', line 111 def super.merge({ Port: 3000, DoNotReverseLookup: true, environment: (ENV['RAILS_ENV'] || ENV['RACK_ENV'] || "development").dup, daemonize: false, debugger: false, pid: File.("tmp/pids/server.pid"), config: File.("config.ru") }) end |
#log_path ⇒ Object
107 108 109 |
# File 'lib/rails/commands/server.rb', line 107 def log_path "log/#{[:environment]}.log" end |
#middleware ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/rails/commands/server.rb', line 91 def middleware middlewares = [] middlewares << [Rails::Rack::Debugger] if [:debugger] 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 ⇒ Object
53 54 55 |
# File 'lib/rails/commands/server.rb', line 53 def opt_parser Options.new end |
#set_environment ⇒ Object
57 58 59 |
# File 'lib/rails/commands/server.rb', line 57 def set_environment ENV["RAILS_ENV"] ||= [:environment] end |
#start ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/rails/commands/server.rb', line 61 def start url = "#{[:SSLEnable] ? 'https' : 'http'}://#{[:Host]}:#{[:Port]}" puts "=> Booting #{ActiveSupport::Inflector.demodulize(server)}" puts "=> Rails #{Rails.version} application starting in #{Rails.env} on #{url}" puts "=> Run `rails server -h` for more startup options" trap(:INT) { exit } puts "=> Ctrl-C to shutdown server" unless [:daemonize] #Create required tmp directories if not found %w(cache pids sessions sockets).each do |dir_to_make| FileUtils.mkdir_p(File.join(Rails.root, 'tmp', dir_to_make)) end unless [:daemonize] wrapped_app # touch the app so the logger is set up console = ActiveSupport::Logger.new($stdout) console.formatter = Rails.logger.formatter console.level = Rails.logger.level Rails.logger.extend(ActiveSupport::Logger.broadcast(console)) end 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 && [:daemonize] end |