なるようになるブログ

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

rails commit log流し読み(2021/08/19)

2021/08/19分のコミットです。

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


Make DatabaseConnectionError a subclass of ConnectionNotEstablished

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

DatabaseConnectionErrorConnectionNotEstablishedのサブクラスに変更しています。

DatabaseConnectionErrorを追加する前は、DBの接続に失敗した場合ConnectionNotEstablishedがraiseされていた為、既存のコードを壊さないようにする為(ConnectionNotEstablishedをrecueしていた場合にDatabaseConnectionErrorをrescue出来るようにする為)にConnectionNotEstablishedのサブクラスに修正しています。


Revises the autoloading guide [skip ci]

rails guideのAutoloading and Reloading Constantsの修正です。

各箇所の言い回し、構成等を修正しています。


Merge pull request #43048 from rails/drop-orphan-methods

Active Supportの修正です。

使用しなくなったclass loader向けのActiveSupport::Dependencies内の各メソッド、module等を削除しています。


Improve description of ActiveRecord.joins [ci-skip]

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

joinsメソッド内のSQLを大文字に変更しています。


Improve Documentation around the options that can be passed to order.

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

orderメソッドのdocに挙動についての詳細な説明を追加しています。

rails commit log流し読み(2021/08/18)

2021/08/18分のコミットです。

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


Avoid orders_count in Active Record order guide examples

rails guideのActive Record Query Interfaceの修正です。

orderメソッドのexampleでorders_count を使用しないよう修正しています。orders_countorderと関係あるのでは、と勘違いさせてしまう可能性があるため、とのことです。


Do not change the framework if all we want are configs

actionpack/lib/action_controller/railtie.rbactivejob/lib/active_job/railtie.rbの修正です。

code内で使用していないattrをbase classに追加しないよう修正しています。


Document query tags configs

rails guideのConfiguring Rails Applicationの修正です

query tags関連のconfigについての説明を追加しています。


Avoid using class_eval and just include a module

query tagの機能を追加するのにclass_evalを使用していたのに、関連する機能をmoduleに切り出して単純にincludeするだけに修正しています。


Some stylistics changes

Active Recordの修正です。

コードのスタイル(<<を2回使っていた箇所をArrayを+するよう修正など)の修正を行っています。


Remove more unneeded methods that should be configs

Active Recordの修正です。

configの設定をする時だけ必要な値に対する不要なメソッドを削除しています。


Move default tagging configuration to the railtie

activerecord/lib/active_record/query_logs.rbactiverecord/lib/active_record/railtie.rbの修正です。

デフォルトのtaggingの設定をrailtiesで行うよう修正しています。他のconfigと同じ箇所でデフォルト値を設定するようにする為。


No need for memoization

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

アプリケーション名に関する不要なメモ化を削除しています。


Allow tag values to be static

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

tagにstaticな値を指定出来るよう修正しています。


Fix initialization proccess of the query tags

actionpack/lib/action_controller/railtie.rbactivejob/lib/active_job/railtie.rbの修正です。

query tags関連の処理で、configに指定した値が正しく反映されてなかったのを修正しています。


Improve taggings API by introducing a null object

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

taggings contextが未設定かどうかを扱うのにnilではなく、専用のクラス(NullObject)を使うよう修正しています。&.をchainしないで済むようにする為。


Stop relying on mutating the configuration object

actionpack/lib/action_controller/railtie.rbactivejob/lib/active_job/railtie.rbの修正です。

configuration objectの値を設定処理中に変更しないよう修正しています。


Only try to configure the query log tags if Active Record is present

actionpack/lib/action_controller/railtie.rbactivejob/lib/active_job/railtie.rbの修正です。

Active Recordのconfigが定義済みの時のみ、config.active_record.query_log_tags_enabledを参照するよう修正しています。


No need to check if the logs are enable to run those tests

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

不要なlog tagsが有効化されているかどうかのチェックを削除しています。


Fix action_on_unpermitted_parameters setter

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

action_on_unpermitted_parametersにfalseが指定されていた場合に、その指定が無視されてしまっていたのを修正しています。


Delay the exclusion of the configs to the last minute

actionpack/lib/action_controller/railtie.rbactivejob/lib/active_job/railtie.rbactiverecord/lib/active_record/railtie.rbの修正です。

まだ使用される可能性がある前にconfigの除外処理をしてしまっていたのを、除外処理を実際に必要になる直前で行うよう修正しています。


Tweaks wording in guide [skip ci]

rails guideのAutoloading and Reloading Constantsの修正です。

Autoloading and Enginesの項の言い回しを修正しています。

rails commit log流し読み(2021/08/17)

2021/08/17分のコミットです。

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

actionview/CHANGELOG.md

activerecord/CHANGELOG.md


Add weekday_options_for_select method

Action Viewの修正です。

weekdayを選択する為のweekday_selectメソッド、及び、select為のoptionを生成する為のweekday_options_for_selectメソッドを追加しています。

weekday_options_for_select
# => "<option value=\"Sunday\">Sunday</option>\n<option value=\"Monday\">Monday</option>\n
# <option value=\"Tuesday\">Tuesday</option>\n<option value=\"Wednesday\">Wednesday</option>\n
# <option value=\"Thursday\">Thursday</option>\n<option value=\"Friday\">Friday</option>\n
# <option value=\"Saturday\">Saturday</option>"

<%= form_for @digest do |f| %>
  <%= f.weekday_select :weekday %>
  <%= f.submit %>
<% end %>

上記viewは、下記HTMLを生成します。

<select name="digest[weekday]" id="digest_weekday">
  <option value="Sunday">Sunday</option>
  <option value="Monday">Monday</option>
  <option value="Tuesday">Tuesday</option>
  <option value="Wednesday">Wednesday</option>
  <option value="Thursday">Thursday</option>
  <option value="Friday">Friday</option>
  <option value="Saturday">Saturday</option>
</select>

Implement db config option database_tasks: false

Active Recordの修正です。

DB系のrake tasks(seedやmigration等)を追加するかどうかをDB毎に指定出来るよう修正しています。指定はconfigファイルで出来るようになっており、rake tasksを追加したくない場合、config/database.ymldatabase_tasks: falseを指定すればOKです。

production:
  primary:
    database: my_database
    adapter: mysql2
  animals:
    database: my_animals_database
    adapter: mysql2
    database_tasks: false

Fix rubocop and cleanup test

railties/test/application/rake/multi_dbs_test.rbの修正です。

rubocopの設定に違反している箇所があったのを修正、及び、不要な例外ハンドリングの削除等を行っています。


Fix typo [ci skip]

activerecord/CHANGELOG.md、及び、rails guideのMultiple Databases with Active Recordの修正です。

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


Fix typo [ci skip]

activerecord/CHANGELOG.md、及び、rails guideのMultiple Databases with Active Recordの修正です。

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


Merge pull request #43028 from rails/classic

Active Support、railtiesの修正です。

classic autoloaderの為の各種設定処理を削除しています。ActiveSupport::Dependenciesはまだ残っているのですが、これは後から別途削除する、との事です。


Tweak unreachable assertion tests in the block of assert_raises

rubocop-minitestを追加、及び、Minitest/UnreachableAssertion copを有効化してassert_raises block内の実行されないassertionを削除するよう修正しています。


Replace kwarg for displaying all configurations

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

configs_forメソッドのinclude_replicas引数をdeprecateにして、代わりにreplica及びdatabase_tasks: falseが指定されたDB全てを表示するかどうかを指定する為のinclude_hidden引数を追加しています。

rails commit log流し読み(2021/08/16)

2021/08/16分のコミットです。

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

activestorage/CHANGELOG.md


Merge pull request #43021 from basecamp/encryption-lenght-validation

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

Encryptable recordsについて、現在不要なtableの存在チェック処理の削除、及び、不要なインスタンス生成処理の削除を行っています。


Merge pull request #43013 from basecamp/encryption-store-attributes

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

Active Record encryptionを store attributesに対しても動作するよう修正しています。


Merge pull request #43007 from FestaLab/activestorage/tiff-size

activestorage/test/fixtures/files/racecar.tifの修正です。

テストで使うtiff imageのファイルサイズを減らすよう修正しています。


Merge pull request #41437 from tomprats/active-storage-byte-range

Active Storageの修正です。

Active Storageのファイルダウンロード処理でbyte range requestをサポートするよう修正しています。


[ci skip] Undocument send_blob_byte_range_data, don't commit to a public API just yet

activestorage/app/controllers/concerns/active_storage/streaming.rbのdocの修正です。

send_blob_byte_range_dataメソッドをprivate APIに変更しています。public APIにする必要は無い筈な為。


Merge pull request #42960 from FestaLab/activestorage/unsafe-redirect

activestorage/app/controllers/active_storage/blobs/redirect_controller.rbactivestorage/app/controllers/active_storage/representations/redirect_controller.rbの修正です。

redirect用のcontrollerでredirect_toallow_other_host: trueオプションを指定するよう修正しています。 s3等のファイルをホスティングしているクラウドサービスにリダイレクト処理が行われる為。