Class: Rails::Server
- Defined in:
- railties/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 'railties/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 'railties/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
114 115 116 117 118 119 120 121 122 123 124 |
# File 'railties/lib/rails/commands/server.rb', line 114 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
110 111 112 |
# File 'railties/lib/rails/commands/server.rb', line 110 def log_path "log/#{[:environment]}.log" end |
#middleware ⇒ Object
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'railties/lib/rails/commands/server.rb', line 94 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 'railties/lib/rails/commands/server.rb', line 53 def opt_parser Options.new end |
#set_environment ⇒ Object
57 58 59 |
# File 'railties/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 90 91 92 |
# File 'railties/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" if [:Host].to_s.match(/0\.0\.0\.0/) puts "=> Notice: server is listening on all interfaces (#{[:Host]}). Consider using 127.0.0.1 (--binding option)" end 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 |