なるようになるブログ

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

rails commit log流し読み(2021/06/11)

2021/06/11分のコミットです。

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


Make default_timezone a module instance variable

Active Recordの修正です。

default_timezoneをmodule instance variableに変更しています。


Make reading_role and writing_role module instance variables

Active Recordの修正です。

reading_rolewriting_roleをmodule instance variableに変更しています。


Make warn_on_records_fetched_greater_than a module instance variable

Active Recordの修正です。

warn_on_records_fetched_greater_thanをmodule instance variableに変更しています。


Make application_record_class a module instance variable

Active Recordの修正です。

application_record_classをmodule instance variableに変更しています。


Get rid of the unused ActiveRecord::Base.sqlite3_production_warning

Active Recordの修正です。

もう使用していないActiveRecord::Base.sqlite3_production_warningを削除しています。


Make action_on_strict_loading_violation a module instance variable

Active Recordの修正です。

action_on_strict_loading_violationをmodule instance variableに変更しています。


Convert many ActiveRecord::Base class variable into instance variables

Active Recordの修正です。

各class variableをinstance variableに変更しています。


Make verbose_query_logs a module instance variable

Active Recordの修正です。

verbose_query_logsをmodule instance variableに変更しています。


Make queues a module instance variable

Active Recordの修正です。

queuesをmodule instance variableに変更しています。


Make maintain_test_schema a module instance variable

Active Recordの修正です。

maintain_test_schemaをmodule instance variableに変更しています。


Move async_query confurations on the ActiveRecord module

Active Recordの修正です。

async_queryの設定をActiveRecord moduleで行うよう修正しています。


Copy config.active_record.* again when ActiveRecord::Base is loaded

Active Recordの修正です。

Make legacy_connection_handling a module instance variableActiveRecord::Base load時のhookでは、ActiveRecord moduleに対してconfigの設定を行わないようにしたのを、ActiveRecord::Base load時のhookでもconfigの設定を行うよう修正しています。initializerでRails.application.active_record.*を指定している場合に動作するようにする為。


Fix disable_joins when foreign key is not ID

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

join foreign keyがIDで無い場合にassociationのdisable_joinsオプションが正しく動作しないバグがあったのを修正しています。


Fix deprecation message s/Rails 7.0/Rails 7.1/

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

reading_role / writing_roleメソッドが出力するdeprecateメッセージ内のRailsのバージョンが過っていたのを修正しています。


:scissors: [ci skip]

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

不要な空行を削除しています。


Make index_nested_attribute_errors a module instance variable

Active Recordの修正です。

index_nested_attribute_errorsをmodule instance variableに変更しています。


Make time_zone_aware_attributes a class attribute

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

time_zone_aware_attributesをclass attributeに変更しています。


Make primary_key_prefix_type a class attribute

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

primary_key_prefix_typeをclass attributeに変更しています。


Make signed_id_verifier_secret a class attribute

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

signed_id_verifier_secretをclass attributeに変更しています。


Fix hot-path raising in ActionDispatch::Static

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

ActionDispatch::Staticでfileがread出来るかどうかをチェックするのにFile.stat + 例外処理でチェックを行っていたのを、File.file? + File.readable?を使用して、例外処理は使わないよう修正しています。メソッドだけでチェクした方が高速な為。

rails commit log流し読み(2021/06/10)

2021/06/10分のコミットです。

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

railties/CHANGELOG.md

activestorage/CHANGELOG.md

activerecord/CHANGELOG.md


Use the current Rails->npm_version for package.json

railtiesの修正です。

rails newした際のpackage.json内のRails関連のnpm(@rails/ujs@rails/activestorageなど)がRailsのバージョンと完全に一致するようバージョンの指定を行うよう修正しています。


[ci skip] clarify rails 6 for AS :attachment

rails guideのActive Storage Overviewの修正です。

generatorのattachmentattachments fieldはRails 6.0以上でないと使えない旨説明を追加しています。


Fix invalid statement template compile error

actionpack/lib/action_dispatch/middleware/templates/rescues/invalid_statement.text.erbの修正です。

エラー用のtemplate fileでendの指定が不足してる箇所があったのを修正しています。


Merge pull request #42392 from FestaLab/activestorage/video-analyzer

activestorage/lib/active_storage/analyzer/video_analyzer.rbの修正です。

video blobのmetadataに、audio channelが存在するかどうかを判別する為のaudio keyを追加しています。audio channelが存在する場合、trueが設定されるようになっています。


Merge pull request #42423 from dorianmarie/Model.update!

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

ActiveRecord::Base.update!メソッドを追加しています。ActiveRecord::Base.updateのエラー時にexceptionをraiseする版。


Fix method name in update! error message [ci skip]

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

Model.update!メソッドで出力するエラーメッセージ内のメソッド名がupdateになっていたのをupdate!に修正しています。


Fix the Active Record test suite following fcc83e47384b69

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

先のupdate!のエラーメッセージの修正で、テストがコケてしまっていたのを修正しています。


Add CHANGELOG for #42423

activerecord/CHANGELOG.mdの修正です。

ActiveRecord::Base.update!を追加した対応について、CHANGELOGにエントリーを追加しています。


Expand on AR::Base for method definition from #42423 [ci skip]

activerecord/CHANGELOG.mdの修正です。

ActiveRecord::Base.update!を追加した対応エントリーのメソッドにクラス名を追加しています。


Correct changelog for #42423 to be class method instead of instance

activerecord/CHANGELOG.mdの修正です。

ActiveRecord::Base.update!を追加した対応エントリーのメソッドの説明がインスタンスメソッドになっていたのをクラスメソッドに修正しています。


Add example for update_all vs. update

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

Updateの項にActiveRecord::Base.updateメソッドについての説明を追加しています。


Merge pull request #42443 from daven97/daven97update_active_record_relation_wording

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

find_or_create_byメソッドのdocの言い回しを修正しています。


Make legacy_connection_handling a module instance variable

Active Recordの修正です。

元々class variableだったlegacy_connection_handlingをmodule instance variableに変更しています。ancestor chainが長くなるようなクラスの場合、class variableだとパフォーマンス的に良くない為。

参考: Feature #17763: Implement cache for cvars - Ruby master - Ruby Issue Tracking System


Add x86_64-darwin-20 platform to the Gemfile

Gemfile.lockの修正です。GemfileのPLATFORMSx86_64-darwin-20を追加しています。

rails commit log流し読み(2021/06/09)

2021/06/09分のコミットです。

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

activemodel/CHANGELOG.md

activerecord/CHANGELOG.md

*Add ActiveRecord::Base#attributes_for_database

activestorage/CHANGELOG.md

railties/CHANGELOG.md


Merge pull request #42409 from shioyama/attributes_for_database

Active Model、Active Recordの修正です。

databaseに設定されるattributesとvaluesのセットを返すActiveModel::AttributeSet#values_for_databaseメソッド、及び、ActiveRecord::Base#attributes_for_databaseメソッドを追加しています。


Add audio analyzer to active storage

Active Storageの修正です。

audio filesの為のanalyzerを追加しています。

ActiveStorage::Analyzer::AudioAnalyzer.new(blob).metadata
# => { duration: 5.0, bit_rate: 320340 }

Merge pull request #41643 from etiennebarrie/engine-include_all_helpers

railties/lib/rails/generators/rails/plugin/plugin_generator.rbの修正です。

generatorsが生成するengineの為のdummy applicationにconfig.action_controller.include_all_helpers = falseの指定を追加しています。helpersが暗黙的に他のhelperに依存してしまっているような場合に、テスト実行時にそれに来づけるようにする為。


Merge pull request #42405 from c960657/time-travel

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

blockの指定が無いtravel/travel_toの後に、blockの指定があるtravel/travel_to を使用出来るよう修正しています。


Merge pull request #41157 from alexandreruban/action-mailer-default

actionmailer/lib/action_mailer/base.rbの修正です。

Action Mailerでデフォルト値がオーバライドされている時は、デフォルト値の設定処理を行わないよう修正しています。値にProcを使っているような場合に、想定外のタイミングでevaluateされてしまうのを避ける為。


Merge pull request #42416 from HenriqueMorato/small_fix_dark_mode

guides/assets/stylesheets/dark.cssの修正です。

ダークモード用のcssでスタイルの指定が不足している箇所があったのを修正しています。


Update development gems

Gemfile.lockの修正です。

各gemを最新のバージョンに更新しています。


Merge pull request #40745

railties/lib/rails/generators/test_unit/scaffold/templates/system_test.rb.ttの修正です。

generatorが生成するsystem test用のコードで、テスト名をshould xxx(処理名)に修正しています。Functional testsとテスト名を合わせる為。


Fix all rubocop violations

rubocopの設定に違反している箇所があったのを修正しています


Merge pull request #42413 from ghiculescu/patch-1

rails guideのContributing to Ruby on Railsの修正です。各箇所の言い回しを修正しています。


Fix outdated explanation of take_failed_screenshot usage

actionpack/lib/action_dispatch/system_testing/test_helpers/screenshot_helper.rbのdocの修正です。

take_failed_screenshotメソッドのdocで説明されている挙動が、実際の挙動と異なっていたのを修正しています。


Fix the new_framework_defaults_7_0 template

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

configを指定するexampleで、メソッド名の指定が誤っている箇所があったのを修正しています。

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

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

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

activesupport/CHANGELOG.md


Merge pull request #42348 from HParker/duration-to-ISO8601-avoid-scientific-notation

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

ISO8601用のformatterで%gを使用しないよう修正しています。指数表現にならないようにする為(%gは指数が-4より小さいか精度以上の場合に指数表現になる)。


Merge pull request #42370 from sunny/better-error-message-when-encrypted-file-key-is-blank

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

RAILS_MASTER_KEY envが空の場合、encrypted file read時にActiveSupport::EncryptedFile::MissingKeyErrorをraiseするよう修正しています。


Return "test" as the controller_name in ActionView tests

Action Pack、Action Viewの修正です。

ActionView::TestCasecontroller_namenilになってしまうバグがあったのを修正しています。


Improve AS::TimeWithZone error message on NoMethodError

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

ActiveSupport::TimeWithZoneNoMethodErrorが発生した場合のエラーメッセージ内のTimeActiveSupport::TimeWithZoneに置換するよう修正しています。Timeインスタンスを使用している場合にも発生する可能性がある処理の為。


Fix documentation

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

disable_joinsに関する説明が他のオプションの説明内に混ざってしまっていたのを修正しています。

rails commit log流し読み(2021/06/07)

2021/06/07分のコミットです。

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

activerecord/CHANGELOG.md


Merge pull request #42399 from bubba/applicationcontroller-self-csp

railties/lib/rails/application_controller.rbの修正です。

Rails::ApplicationControllerのCSPの指定で、selfでのscriptの実行を許可するよう修正しています。指定が無いとwelcomeページ表示時にエラーになってしまう為。


Merge pull request #42366 from yahonda/net_smtp_willbe_bundled_gem_in_ruby31

guides/bug_report_templates/action_mailbox_gem.rbguides/bug_report_templates/action_mailbox_main.rbの修正です。

net-smtp gemをインストールするよう指定を追加しています。Ruby 3.1でdefault gemsから削除され、明示的に追加しないと動作しなくなった為。


Use an empty query instead of SELECT 1

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

PostgreSQL adapterでconnectionがactiveかどうかをチェックするのにSELECT 1を実行していたのを、空のクエリー(セミコロンだけ)を実行するよう修正しています。空のクエリーの方が実行が速いため。

参考: Query performance "Select 1" (#220055) · Issues · GitLab.org / GitLab · GitLab

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

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

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


[ci skip] Fixed grammatical errors in Action Mailer Basics Guide

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

各箇所のグラマーの修正を行っています。


Update Active Storage guide about num migration added in setup

rails guideのActive Storage Overviewの修正です。

Active Storage が使用するテーブルについて説明している箇所に、active_storage_variant_recordsの説明を追加しています。

rails commit log流し読み(2021/06/05)

2021/06/05分のコミットです。

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

activestorage/CHANGELOG.md


[ci skip] Fixed typos and grammatical errors in Action Cable Overview

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

タイポの修正、及び、グラマーの修正を行っています。


Merge pull request #42391 from abhaynikam/document-active-storage-generator-types

rails guideのActive Storage Overviewの修正です。

generatorにattachmentattachments fieldを指定するexampleを追加しています。


Merge pull request #42059 from aki77/active-storage-signed-id-expires_in

activestorage/app/models/active_storage/blob.rbの修正です。

ActiveStorage::Blobsigned_idメソッドでexpires_inオプションが指定出来るよう修正しています。


Merge pull request #42400 from abhaynikam/document-action-text-field-attributes

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

generatorにrich_text fieldを指定するexampleを追加しています。


Merge pull request #42398 from AdityaBhutani/fix-and-improve-guide-action-controller-overview

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

guide全体のグラマーの修正を行っています。