【Rails3】デフォルトポートを変更する

Railsでは、"rails s" コマンドを叩くとデフォルトポートである3000番で起動します。
"rails s -p 3001"のようにポート番号を指定することで明示的に使うポートを設定することも出来ますが、
「このアプリは"rails s"って打ったら無条件に4000番ポートで起動したいよー」なんて場合もあると思います。

デフォルトのポート番号はRails::Serverクラスのdefault_optionsメソッドで定義されているので、
その値を上書きしてやればデフォルトポートを変更できます。

Serverクラスの書き換えは、Serverクラスが使われる前のタイミングで行う必要があるので、config/boot.rbなどに下記コードを書きます。

require 'rails/commands/server'
module Rails
  class Server
    def default_options
      super.merge({
        :Port => 4000
      })
    end
  end
end

superメソッドを呼ぶと親元のdefault_optionsメソッドがコールされます。そのメソッドはHashを返却します。そのHashオブジェクトに対し、Hash#merge()を使うと、指定した値のみ書き換えてくれます。便利。