なるようになるブログ

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

rails commit log流し読み(2021/04/04)

2021/04/04分のコミットです。

CHANGELOGへの追加はありませんでした。


Populate ARGV with Rails::Command.invoke args

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

Rails 6.1で、コマンドに引数に指定した値がARGV経由で取得出来ないバグがあったのを修正しています。


Remove with_autoloading_fixtures from the AS::Testing::ConstantLookup test suite

activesupport/test/testing/constant_lookup_test.rbの修正です。

ActiveSupport::Testing::ConstantLookupからwith_autoloading_fixturesについてのテストを削除しています。


Remove DependenciesTestHelpers

Active Supportのテストの修正です。不要になったDependenciesTestHelpersを削除しています。


Exclude encryption performance tests from isolated runs

activerecord/Rakefileの修正です。

isolated testsからencryption/performanceのテストを除外するよう修正しています。encryption performance用のrakeタスクでのみ実行される事を想定しているテストの為。

rails commit log流し読み(2021/04/03)

2021/04/03分のコミットです。

CHANGELOGへの追加はありませんでした。


RemoteConnection#disconnect: fix ArgumentError on ruby 3.0

actioncable/lib/action_cable/remote_connections.rbの修正です。

Ruby 3.0でRemoteConnection#disconnectを実行するとArgumentErrorになってしまうバグがあったのを修正しています。


secure_compare: Check byte size instead of length

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

ActiveSupport::SecurityUtils.secure_compareで値を比較するのにlengthを使用していたのを、bytesizeを使用するよう修正しています。bytesizeが不一致の場合にfalseを返せるようにする為。


Add new "encrypted_books" table to the schema

Active Recordのテストの修正です。

encryptionのテストと通常の機能のテストで同じmodelを使用していたのを、別のmodelを使用するよう修正しています。テストの実行順序によって、正しく動作しないケースがある為。


Fix lingering references to Book

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

先のencryptionのテストと通常の機能のテストで同じmodelを使用していたのを別のmodelを使用するようにした修正で、修正漏れがあったのを対応しています。


Fix more Book references.

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

引き続き、別のmodelを使用するようにした修正の修正漏れ対応です。

rails commit log流し読み(2021/04/02)

2021/04/02分のコミットです。

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

activerecord/CHANGELOG.md


Merge pull request #41812 from rokbot/fix/guides-mailer-basics

rails guideのAction Mailer Basicsの修正です。

Calling the Mailerの項にあるexampleコードが、ActiveModel::ForbiddenAttributesErrorが発生するコードになってしまっていたのを修正しています。


Merge pull request #41659 from basecamp/active-record-encryption

Active Recordの修正です。

Active Record modelsのattributeをencryptする機能が追加されました。HEYで使用している機能との事です。

encryptするには、まずencryption用のkeyを生成する必要があります。このkeyはdb:encryption:initで生成出来るようになっています。encrypt対象のattributeは、modelで定義出来るようになっています。

class Article < ApplicationRecord
  encrypts :title
end
article = Article.create title: "Encrypt it all!"
# => INSERT INTO `articles` (`title`) VALUES ('{\"p\":\"n7J0/ol+a7DRMeaE\",\"h\":{\"iv\":\"DXZMDWUKfp3bg/Yu\",\"at\":\"X1/YjMHbHD4talgF9dt61A==\"}}')

デフォルトではencrypがnon-deterministicに行われる為、値を指定しての検索が行えないようになっています(同じ値をencryptしても結果が変わる為)。

値を指定のしての検索を行いたい場合、encryptがdeterministicに行われるようにする必要があります。これはencryptsのオプションで指定出来るようになっています。

class Author < ApplicationRecord
  encrypts :email, deterministic: true
end

Author.find_by_email("some@email.com")

その他、fixtureやreferences等の為の機能があります。詳細は、Guideを参照してください。


Minor encryption guide tweaks and corrections

rails guideのActive Record Encryptionの修正です。

各項のタイポ、言い回しを修正しています。


Fix typos encryption doc (#41817)

activerecord/lib/active_record/encryption/key_generator.rbのdoc、及び、rails guideのActive Record Encryptionの修正です。

各箇所のタイポ、不要なスペースの削除を行っています。


Fix typo [ci skip]

rails guideのActive Record Encryptionの修正です。

wantwanにタイポしていたのを修正しています。


Fix wrong require

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

requireするライブラリ名をタイポしていたのを修正しています。


Remove print statement / uncomment relevant assertion

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

テスト内でコメントアウトされていたassertionを実行するよう修正、及び、不要なデバッグ文の出力処理を削除しています。


Add Active Record encryption to CHANGELOG

activerecord/CHANGELOG.mdの修正です。

encryption機能について、CHANGELOGにエントリーを追加しています。


Tweak AR Encryption guide for better highlighting [ci skip]

rails guideのActive Record Encryptionの修正です。

各箇所のフォーマットの修正を行っています。

rails commit log流し読み(2021/04/01)

2021/04/01分のコミットです。

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

actionpack/CHANGELOG.md


Merge pull request #41808 from p8/upgrade/sdoc-2.1.0

Gemfileの修正です。sdocのバージョンを2.1.0に更新しています。


Provide context when logging unpermitted parameters

actionpack/lib/action_controller/log_subscriber.rbactionpack/lib/action_controller/metal/strong_parameters.rbの修正です。

unpermitted parametersが発生した場合のinstrumentation(unpermitted_parameters.action_controller)にContext(controller, action, paramsとrequest)を渡すよう修正しています。これらの情報は、unpermitted parametersが発生したのログにも出力されるようになっています。


Merge pull request #41810 from leequarella/forced-test_order

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

parallelizeメソッド内で強制的にtest_order:parallelに変更していたのを修正しています。ユーザが指定したtest_orderが使用されるようにする為。

rails commit log流し読み(2021/03/31)

2021/03/31分のコミットです。

CHANGELOGへの追加はありませんでした。


Merge pull request #41793 from jhawthorn/fix_buffered_log_subscriber_nil

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

ActiveSupport::LogSubscriberのinstument処理で、loggernilの場合にエラーにならないよう修正しています。


Fixes failing ActionText::ContentTest test cases

actiontext/lib/action_text/attachment_gallery.rbの修正です。

ActionText::ContentTestを単体で実行した場合にエラーになるテストがあったのを修正しています。


Add: link to documentation

rails guideのAction Mailbox Basicsの修正です。

guideの下部に、ActionMailbox::TestHelper APIへのリンクを追加しています。


Merge pull request #41801 from Shopify/optimize-numeric-to-s

activesupport/lib/active_support/core_ext/numeric/conversions.rbの修正です。

ActiveSupport::NumericWithFormat#to_sメソッドでNilClass === nilではなく#nil?メソッドを使用するようリファクタリングしています。#nil?の方が高速な為。

rails commit log流し読み(2021/03/30)

2021/03/30分のコミットです。

CHANGELOGへの追加はありませんでした。


Document config.require_master_key [docs] [ci-skip]

rails guideのConfiguring Rails Applicationsの修正です。

config.require_master_key についての説明を追加しています。


Address intermittent CI failure due to non-determined sort order

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

assertionで値を比較する際に、値をidでsortしてからチェックするよう修正しています。 sortを指定しないと結果が不定になる為。


Merge pull request #41255 from euxx/fix-create-migration-generator-with-pretend-option

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

migrationのgeneratorにpretendオプションを指定した場合にエラーになってしまうバグがあったのを修正しています。