edge badge
Methods
P
Instance Public methods
parse!(args)
# File railties/lib/rails/commands/server.rb, line 9
def parse!(args)
  args, options = args.dup, {}

  opt_parser = OptionParser.new do |opts|
    opts.banner = "Usage: rails server [mongrel, thin, etc] [options]"
    opts.on("-p", "--port=port", Integer,
            "Runs Rails on the specified port.", "Default: 3000") { |v| options[:Port] = v }
    opts.on("-b", "--binding=ip", String,
            "Binds Rails to the specified ip.", "Default: 0.0.0.0") { |v| options[:Host] = v }
    opts.on("-c", "--config=file", String,
            "Use custom rackup configuration file") { |v| options[:config] = v }
    opts.on("-d", "--daemon", "Make server run as a Daemon.") { options[:daemonize] = true }
    opts.on("-u", "--debugger", "Enable the debugger") do
      if RUBY_VERSION < '2.0.0'
        options[:debugger] = true
      else
        puts "=> Notice: debugger option is ignored since ruby 2.0 and "                     "it will be removed in future versions"
      end
    end
    opts.on("-e", "--environment=name", String,
            "Specifies the environment to run this server under (test/development/production).",
            "Default: development") { |v| options[:environment] = v }
    opts.on("-P", "--pid=pid", String,
            "Specifies the PID file.",
            "Default: tmp/pids/server.pid") { |v| options[:pid] = v }

    opts.separator ""

    opts.on("-h", "--help", "Show this help message.") { puts opts; exit }
  end

  opt_parser.parse! args

  options[:log_stdout] = options[:daemonize].blank? && (options[:environment] || Rails.env) == "development"
  options[:server]     = args.shift
  options
end