なるようになるブログ

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

rails commit log流し読み(2017/03/29)

2017/03/29分のコミットです。

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

activemodel/CHANGELOG.md


Merge pull request #28549 from jess/patch-1

railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.ttの修正です。

tmp/caching-dev.txtの存在チェックをしている箇所のコメントにrails dev:cacheコマンドでキャッシュの切り替えが出来る旨説明を追加しています。


Fix ActiveModel::Errors #keys, #values

activemodel/lib/active_model/errors.rbの修正です。

ActiveModel::Errors#keysメソッドをメッセージが空のkeyを返さないよう修正、及び、ActiveModel::Errors#valuesメソッドを空のvalueは返さないよう修正しています。

# Before
person = Person.new
person.errors.keys     # => []
person.errors.values   # => []
person.errors.messages # => {}
person.errors[:name]   # => []
person.errors.messages # => {:name => []}
person.errors.keys     # => [:name]
person.errors.values   # => [[]]

# After
person = Person.new
person.errors.keys     # => []
person.errors.values   # => []
person.errors.messages # => {}
person.errors[:name]   # => []
person.errors.messages # => {:name => []}
person.errors.keys     # => []
person.errors.values   # => []

Merge pull request #28514 from y-yagi/follow_up_to_28056

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

store_accessorを使用している、かつ、request parameterにstore_accessorのkeyに一致する値が含まれていた場合に、paramsにその値が正しく設定されないバグがあったのを修正した、Wrap stored accessors in parametersで追加されたテストが、正しくstore_accessorについてのテストが出来ていなかったのを修正しています。


Merge pull request #1 from radiospiel/tickets/26955-listen-paths

activesupport/lib/active_support/evented_file_update_checker.rbの修正です。

ActiveSupport::EventedFileUpdateCheckerrails app以外のファイル(bundlerで追加されたgemのファイル)の更新検知まで行っていたのを、rails app内のファイルのみ更新検知するよう修正しています。


starts_with? is removed in Ruby 2.4

activesupport/lib/active_support/evented_file_update_checker.rbの修正です。

先の対応でstart_with?starts_with?にタイポしていたのを修正しています。


Merge pull request #28480 from mubashirhanif/add_keep_id_suffix_option_to_humanize_new

activesupport/lib/active_support/core_ext/string/inflections.rbactivesupport/lib/active_support/inflector/methods.rbの修正です。

ActiveSupport::Inflector.titleizeActiveSupport::Inflector.humanizeメソッドにkeep_id_suffixオプションを追加しています。

名前の通りで、Stringの末尾にidという文字があった場合に、それをそのまま表示するかどうかを指定する為のオプションです。

irb(main):003:0> 'author_id'.humanize
# => "Author"
irb(main):005:0* 'author_id'.humanize(keep_id_suffix: true)
# => "Author id"

Use keyword arguments instead of hash

activesupport/lib/active_support/core_ext/string/inflections.rbactivesupport/lib/active_support/inflector/methods.rbの修正です。

ActiveSupport::Inflector.titleizeActiveSupport::Inflector.humanizeメソッドの引数指定に、Hashではなくキーワード引数を指定出来るよう修正しています。


Merge pull request #28052 from kamipo/make_internal_methods_to_private

Active Recordの修正です。

AR内部で使うためだけの各種メソッドの可視性をprivateに変更しています。


Remove unnecessary javascript option check

railties/lib/rails/generators/rails/app/templates/app/assets/javascripts/application.js.ttの修正です。

Remove -j (–javascript) option from rails new command.で削除されたjavascriptオプションを参照している箇所があったのを削除しています。


Make driven_by overridable

actionpack/lib/action_dispatch/system_test_case.rbの修正です。

driven_byメソッドを子クラスでオーバーライド出来るよう対応しています。

class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
  driven_by :selenium, using: :chrome, screen_size: [1400, 1400], options: {url: "http://chrome:4444/wd/hub"}
end

class WithoutJavascriptTest < ApplicationSystemTestCase
  driven_by :rack_test
end

上記のような書き方が出来るようになっています。


Remove CHANGELOG.md entry that appears in 5-1-stable

activemodel/CHANGELOG.mdの修正です。

Merge pull request #28050 from namusyaka/avoid-converting-int-into-floatの対応のエントリーを削除しています。

Rails 5.1にバックポートされた対応であり、Rails 5.2の新規対応では無い為。


Merge pull request #28478 from kamipo/fix_primary_keys_across_multiple_schemas

activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rbの修正です。

PostgreSQL adapterを使用している、かつ、異なるschemaに同じテーブル名のテーブルが存在している場合に、ActiveRecord::Base.connection.primary_keysメソッドが返す値がおかしくなってしまう(schema数分primary keyの値が返ってくる。e.g. ['id', 'id'])バグがあったのを修正しています。


add hint on after_action filters

rails guideのAction Controller Overviewの修正です。

After Filters and Around Filtersの項に、after_actionはactionが正常に行われた場合のみ実行される旨注記を追加しています。


FinderMethods#fourty_two docs cite proper source

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

forty_twoメソッドのdocのコメントを修正しています。

-    # Find the forty-second record. Also known as accessing "the reddit".
+    # Find the forty-second record. Also known as accessing "the answer to life the universe and everything".