2017/07/24分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Use frozen string literal in actionmailer/
Action Mailerの修正です。
各ファイルの先頭にfrozen_string_literal: true
を追加しています。
Make actionview ready for frozen strings
actionview/lib/action_view/renderer/streaming_template_renderer.rb
の修正です。
ファイルの先頭にfrozen_string_literal: true
を追加、及び、Stringを変更する箇所でdup
を呼び出すよう修正しています。
Make actioncable ready for frozen strings
actioncable/lib/action_cable/channel/base.rb
の修正です。
ファイルの先頭にfrozen_string_literal: true
を追加、及び、Stringを変更する箇所でdup
を呼び出すよう修正しています。
Use frozen string literal in actioncable/
Action Cableの修正です。
各ファイルの先頭にfrozen_string_literal: true
を追加しています。
Merge pull request #29860 from georgeclaghorn/travel-back-automatically
activesupport/lib/active_support/testing/time_helpers.rb
の修正です。
TimeHelpers
moduleでafter_teardown
メソッドを定義し、テスト終了時に自動でtravel_back
を呼び出すよう修正しています。
これにより、block無しのtravel
やtravel_to
を使用した場合に、明示的にtravel_back
を呼ぶ必要は無くなります。 Remove automatic removal of Date/Time stubs after each test caseで一度同様の対応が削除された事があったのですが、自動でtravel_back
した方が便利だろう、という事で再度入ったようです。
document metadata support added to message encryptor and message verifier
activesupport/lib/active_support/message_encryptor.rb
、
activesupport/lib/active_support/message_verifier.rb
のdocの修正です。
ActiveSupport::MessageEncryptor
クラス、ActiveSupport::MessageVerifier
クラスのdocにpurpose
オプションやメッセージにexpire
を設定する場合の方法についてのドキュメントを追加しています。
add to changelog: purpose and expiry support
MessageVerifier
とMessageEncryptor
にpurpose
やexpires_in
、expires_at
オプションを設定出来るようにした対応(Add purpose and expiry to messages encrypted using Message EncryptorとAdd Expiry & Purpose to Message Verifier)についてエントリーを追加しています。
purpose
オプションはメッセージの生成時 / 確認時に指定する事が出来、purpose
の値が一致しないと、メッセージの確認が出来ないようになっています。
token = @verifier.generate("this is the chair", purpose: :login) @verifier.verified(token, purpose: :login) # => "this is the chair" @verifier.verified(token, purpose: :shipping) # => nil @verifier.verified(token) # => nil
expires_in
、expires_at
は名前の通りでメッセージに対してexpireする日付・期間を指定する事ができます。指定された日付を超えた場合、そのメッセージは確認出来なくなります。
[ci skip] Remove superfluous paragraphs; fully qualify constants.
activesupport/CHANGELOG.md
の修正です。
先のMessageVerifier
とMessageEncryptor
の対応についてのエントリーを整理しています。
add metadata tests: verify method
activesupport/test/message_verifier_test.rb
の修正です。
ActiveSupport::MessageVerifier#verify
メソッドについてのテストを追加しています。
Fix test failure in message verifier tests
activesupport/test/message_verifier_test.rb
の修正です。
ActiveSupport::MessageVerifier
クラスのテストで現在時刻を取得するのにTime.local
を使用していたのを、Time.utc
を使用するよう修正しています。Time.local
だとテストを実行する環境のTimezoneに結果が依存してしまい、環境によってはテストがコケてしまう為。
Fix warnings in railties tests
Gemfile
の修正です。
sass-rails
gemを使用するのに、リリース済みのgemではなく、GitHubのブランチを指定するよう修正しています。
リリース済みのsass-rails
だとasset_data_url
の再定義に関するwarningが出てしまうのですが、上記ブランチだとその問題が解決済みな為。
Merge pull request #29894 from eugeneius/check_schema_file_dup_string
activerecord/lib/active_record/tasks/database_tasks.rb
の修正です。
check_schema_file
メソッドでschema fileが存在しない場合に出力するメッセージをdup
するよう修正しています。
- message = %{#{filename} doesn't exist yet. Run `rails db:migrate` to create it, then try again.} + message = %{#{filename} doesn't exist yet. Run `rails db:migrate` to create it, then try again.}.dup message << %{ If you do not intend to use a database, you should instead alter #{Rails.root}/config/application.rb to limit the frameworks that will be loaded.} if defined?(::Rails.root)
直後にmessage
変数に値を追加しており、dup
しないとfrozen_string_literal
にtrue
を指定している場合にエラーになってしまう為。
Refactor Active Record to let Arel manage bind params
Active Recordの修正です。
Active Recordで行っていたbind paramsの管理をArelで行うようリファクタリングしています。
ASTと、ASTに深く関連しているbind paramsを別に管理しようとして、コードが複雑、かつ、バグが多い状態になっていました。これを、ASTで直接bind paramsを保持するようリファクタリングし、Arel側で生成されるSQLとbind params両方を管理出来るようにした、という事のようです。多分。
その為、Arel側でも諸々修正が行われています。このあたり。
activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb
、
activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb
の修正です。
先のActive Recordのリファクタの影響でコケてしまったテストを修正しています。
Merge pull request #29905 from kamipo/remove_duplicated_assertion
activerecord/test/cases/base_test.rb
の修正です。
count + joinのテストで、同じ内容のassertionがあったのを削除しています。
activerecord/lib/active_record/relation/predicate_builder.rb
の修正です。
先のActive Recordのリファクタの影響でコケてしまったテストを修正しています。