なるようになるブログ

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

rails commit log流し読み(2015/09/01)

2015/09/01分のコミットです。

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

activemodel/CHANGELOG.md


Inline uneccessary frozen string constant

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

read_attributeメソッドで使用しているID用定数を、メソッド外でconstantで定義していたのを、constantはしようぜすメソッド内で定義するよう修正しています。

freeze処理も行っており、使用している箇所も一箇所だけの為、constantを定義する意味が無いので、修正したようです。


Merge pull request #21421 from leighhalliday/array_inq_toggle_string_symbol

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

ActiveSupport::ArrayInquire#any?メソッドの引数にStringを指定しても動作するよう修正してます。元々はSymbolのみでしか動作していませんでした。


No need CHANGELOG entry for #21421 [ci skip]

activesupport/CHANGELOG.mdの修正です。

Merge pull request #21421 from leighhalliday/array_inq_toggle_string_symbolの対応でCHANGELOGも更新されていたのですが、 まだリリースされていない機能で、CHANGELOGへの追記は不要との事で削除されています。


Merge pull request #21318 from yahonda/pr21108

activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rbactiverecord/lib/active_record/connection_adapters/mysql_adapter.rbの修正です。

SHOW VARIABLES実行する処理をbegin/rescueで囲むよう修正しています。

MySQL 5.7.8以降、show_compatibility_56= 0が暗黙のデフォルトになり、SHOW VARIABLESとかはinformation_schemaではなくperformance_schemaを見に行くようになったのですが、performance_schema.*_variablesテーブルにSELECT権限がないとSHOW VARIABLESは転けてしまう為、エラーが起きた際に処理が継続出来るようにする為に、begin/rescueで囲むよう修正したようです。

参照:日々の覚書: MySQL 5.7でshow_compatibility_56= 0だとレプリケーションスレーブがつながらないかも知れない


No need to get the exception variable

activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rbactiverecord/lib/active_record/connection_adapters/mysql_adapter.rbの修正です。

先の修正で、rescue式でexceptionを変数に設定していたのですが、特に使用していないので、exceptionを変数に設定しないよう修正しています。


Merge pull request #21298 from rodzyn/remove_dead_code

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

使用されていないBase.protected_instance_variablesメソッドを削除しています。


Merge pull request #19788 from cmdrclueless/actionpack_http_url_ipv6

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

IPv6のホスト名で、ホスト名[]が含まれていた場合に、ActionDispatch::Http::URL#url_forが正常に動作していなかったバグがあったのを修正しています。

-      HOST_REGEXP     = /(^[^:]+:\/\/)?([^:]+)(?::(\d+$))?/
+      HOST_REGEXP     = /(^[^:]+:\/\/)?(\[[^\]]+\]|[^:]+)(?::(\d+$))?/

Add case_sensitive option for confirmation validation

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

confirmation validationに、大文字小文字の差を無視するかどうかを指定する為のcase_sensitiveオプションを指定出来るよう対応しています。

例。

class Person < ActiveRecord::Base
  validates :email, confirmation: { case_sensitive: false }
end

デフォルトは、今まで通り大文字小文字を区別するようになっています。


Merge pull request #21416 from lsylvester/cache-helper-with-relation

actionview/lib/action_view/helpers/cache_helper.rbの修正です。

cache helperのcacheメソッドActiveRecord::Relationを指定していた場合に、正しくcache用のkeyが生成されないバグがあったのを修正しています。

# これがNGだった
cache(User.all) do
  ...
end

Fix syntax error introduced by #17351.

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

Add case_sensitive option for confirmation validation の対応でis_a?メソッドの引数の指定に誤りがあり、syntax errorが発生してしまっていたのを修正しています。


Fix typo in readme file

README.mdの修正です。

sub-project’s codebasessub-projects' codebasesに修正しています。タイポ。


Add master branch to github gems to be able to use local clones

Gemfileの修正です。

githubを直接指定しているgemについて、ブランチ名も指定するよう修正しています。

-gem 'globalid', github: 'rails/globalid'
-gem 'rack', github: 'rack/rack'
+gem 'globalid', github: 'rails/globalid', branch: 'master'
+gem 'rack', github: 'rack/rack', branch: 'master'

ローカルにクローンしたgemを使用出来るようにする為との事。


Fix failure introduced by #17351 due to the new mocks implementation

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

Add case_sensitive option for confirmation validation の対応により、confirmation validationでエラーメッセージを表示する際に、不要なcase_sensitiveオプションも渡してしまっていたのを、case_sensitiveオプションの値については渡さないよう修正しています。


Add missing test for #17351

activemodel/test/cases/validations/confirmation_validation_test.rbの修正です。

Add case_sensitive option for confirmation validation の対応のテストが無かったので、confirmation validationにcase_sensitiveオプションを指定した場合のテストを追加しています。


Fix bug where cookies mutated by request were not persisted

actionpack/lib/action_controller/test_case.rbactionpack/lib/action_dispatch/middleware/cookies.rbの修正です。

controllerのテスト処理でcookiesの値を書き換えた場合に、HTTP methodのエミュレートメソッド(get/post etc)を呼び出すと、cookiesに設定した値が削除されてしまう、というバグがあったのを修正しています。


typo fix [ci skip]

rails guideのContributing to Ruby on Railsの修正です。

先ほどのREADMEの修正同様に、sub-project’s codebasessub-projects' codebasesに修正しています。