なるようになるブログ

読書感想文かrailsについてかrubyについてか

rails commit log流し読み(2015/04/14)

2015/04/14分のコミットです。

CHANGELOGにのったコミットは以下の通りです。

activerecord/CHANGELOG.md


fix indent in routes when using namespaced controllers

railties/lib/rails/generators/rails/controller/controller_generator.rbの修正です。

ネームスペース付きのコントローラーを生成した場合に、routesに生成される内容のインデントがずれる、というバグがあったのを修正しています。

# Before:
Rails.application.routes.draw do
  namespace :foo do
  namespace :bar do
    get 'baz/index'
    end
  end
end
# After:
Rails.application.routes.draw do
  namespace :foo do
    namespace :bar do
      get 'baz/index'
    end
  end
end

Upgrade to Ruby 2.2.2

Ruby 2.2.2のリリースに伴い、各コンポーネントのgemspecのrequired_ruby_version、及び各種docのRuby バージョンを 2.2.2に修正しています。


Add support for Set to Relation#where

activerecord/lib/active_record/relation/predicate_builder.rbの修正です。

Relation#whereメソッドSetオブジェクトを設定出来るよう修正しています。

set = Set.new([1, 2])
Author.where(:id => set) # => SELECT "authors".* FROM "authors" WHERE "authors"."id" IN (1, 2)

Set、設定出来なかったんですねえ。知らなかった。


Use Ruby 2.2.2 on travis

.travis.ymlの修正です。

travis ciでRuby 2.2.2を使用するよう修正しています。


Use silence_warnings on StaticTests

actionpack/test/dispatch/static_test.rbの修正です。

Encoding.default_internalEncoding.default_externalを設定する際、silence_warningsで処理を囲うよう修正しています。

-    Encoding.default_internal = @default_internal_encoding
-    Encoding.default_external = @default_external_encoding
+    silence_warnings do
+      Encoding.default_internal = @default_internal_encoding
+      Encoding.default_external = @default_external_encoding
+    end

Rubyの警告を表示するようにしている場合、default_internaldefault_externalを設定すると警告メッセージが表示されてしまう為、テストの際に不要な警告が表示されないようにする為に修正したとの事です。


Tiny optimization of http auth Realm unquoting

actionpack/lib/action_controller/metal/http_authentication.rbの修正です。

authentication_requestメソッドで、Realm のアンクォート処理を行う際、gsubではなくtrメソッドを使用するよう修正しています。

只の文字の置換の場合、trメソッドの方が高速なためですね。