2016/01/17分のコミットです。
CHANGELOGへの追加はありませんでした。
Avoid multiple default paths to server.pid file
railties/lib/rails/commands/server.rb
の修正です。
defaultのpid pathをRails::Server::Options#default_options
が呼ばれる為に生成したのを、クラスロード時にpathを生成し、それを使いまわすよう修正しています。
module Rails class Server < ::Rack::Server class Options + DEFAULT_PID_PATH = File.expand_path("tmp/pids/server.pid").freeze + def parse!(args) args, options = args.dup, {} @@ -91,7 +93,7 @@ def default_options environment: (ENV['RAILS_ENV'] || ENV['RACK_ENV'] || "development").dup, daemonize: false, caching: false, - pid: File.expand_path("tmp/pids/server.pid") + pid: Options::DEFAULT_PID_PATH })
Rails 5.0.0.beta1でrails serverをdaemonとして起動してようとした場合にクラッシュしてしまう問題があり、その対応です。
File.expand_path
は引数に相対パスを渡した場合、default pathを基準にした文字列を返します。daemonとして起動しない場合default pathがrailsのrootディレクトリなので問題無いのですが、daemonとして起動する場合、Process.daemon
が実行された時点でcurrent shellとデタッチしてしまい、default pathが'/'となってしまう為、pidファイルを/tmp/pids/server.pid
に生成しようとして失敗し、起動してしまっていたとの事です。
なお、rack 1系の時はdefault optionsの値をrack側でキャッシュしたようなのですが、rack 2系から値をキャッシュしなくなった為、問題が発生してしまったとの事です。
Remove literal? check to fix issue with prefixed optionals
actionpack/lib/action_dispatch/routing/mapper.rb
の修正です。
Rails 5.0.0.beta1 でroutingに-:
を使用した場合(ex: `get 'prefixed_optional(/p-:page)')に、routingが正しく認識されないバグがあったのを修正しています。リテラルのチェック処理に誤りがあった為問題が発生してしまっていたようです。
Make ref return the internal symbol.
actionview/lib/action_view/template/types.rb
の修正です。
ActionView::Template::Types::Type#ref
メソッドが、@symbol
変数の値を返すよう修正しています。
def ref - to_sym || to_s + @symbol end
initializeの時点で@symbol
にto_symした値を保持している為、再度変換処理を呼び出すのではなく、変換済みの値を使用する為に修正したようです。