なるようになるブログ

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

rails commit log流し読み(2015/06/02)

2015/06/02分のコミットです。

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

actionpack/CHANGELOG.md

railties/CHANGELOG.md


Merge pull request #20386 from yoongkang/circular_import

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

circular requireのwarningが出ていたので、'active_record/base'のrequire処理を削除しています。


Merge pull request #20284 from kaspth/fix-caching-test

actionpack/test/controller/caching_test.rbの修正です。

viewがcacheされている事を確認するテストで、view内でクラス変数のインクリメント処理を行うようにし、クラス変数の値が変更されてない事で、キャッシュされている事を確認するようテストを追加しています。


Merge pull request #20138 from tgxworld/deprecated_assert_template

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

assignsassert_templateメソッドrails本体から取り除かれ、外部gem(rails-controller-testing)に切りだされました。

取り除かれる事になった背景は、Deprecate assigns() and assert_template in controller testing · Issue #18950 · rails/rails を差参照。


Merge pull request #20362 from kddeisz/enumerable_pluck

activesupport/lib/active_support/core_ext/enumerable.rbactiverecord/lib/active_record/relation/calculations.rbの修正です。

Enumerable#pluck複数キーの値を取り出せるよう対応、及び、recordロード済みの場合にCalculations#pluckメソッドでもEnumerable#pluck使用するよう修正しています。

[{ id: 1, name: "David" }, { id: 2, name: "Rafael" }].pluck(:id, :name)
# => [[1, "David"], [2, "Rafael"]]

Fixed typos in guide

rails guideのタイポをまとめて修正しています。


Use sprockets-rails from github repo

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

rails newする際、dev及びedgeオプションが指定されている場合は、sprockets-railsのmasterを使用するよう修正しています。

リリース済みのsprockets-railsだとbin/rake routesの実行結果がおかしくなってしまう、という問題がある為、開発版のRailsを使う際は、sprockets-rails開発版を使用するようにしたようです。 詳細は bin/rake routes on master shows detailed sprockets output · Issue #20397 · rails/rails を参照。


Removed use of mocha from railties actions_test

railties/test/generators/actions_test.rbの修正です。

railtiesのgeneratorの各アクションに関するテストでmochaを使用しないよう修正しています。


[skip ci] Add documentation for QueueAdapter::queue_adapter

activejob/lib/active_job/queue_adapter.rbのdocの修正です。

QueueAdapter::queue_adapterメソッドにdocを追加しています。


Use block variable instead of global

gsubsubメソッドにブロックを渡して処理を行う際、ブロックの中でグローバル変数を使用していたのをローカル変数を使用するよう修正してます。そちらの方が性能的に良いとの事です。

というわけで比較。

require 'benchmark/ips'

Benchmark.ips do |x|
  x.report("$&") {
    "foo".sub(/f/) { $&.upcase }
  }
  x.report("block var") {
    "foo".sub(/f/) {|match| match.upcase }
  }
end

Skip test that fails from outdated sqlite3 on travis

activerecord/test/cases/relation_test.rbの修正です。

select queryにsymbolを渡す際、必ずquote処理を行うよう修正した Ensure symbols passed to select are always quoted の対応が古いSQLite3では動作しない為、古いSQLite3ではテストが実行されないよう対応しています。


Merge pull request #20387 from y-yagi/fix_engine_generated_controller_test

railtiesのgeneratorの修正です。

rails enginesの中で生成したfunctional testが正常に動作してなかったのを、@routesにEngineのroutesを設定、fixture名に適切な名前に修正して対応しています。