なるようになるブログ

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

rails commit log流し読み(2019/05/19)

2019/05/19分のコミットです。

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


Merge pull request #36122 from cseelus/respect-operating-system-color-scheme-for-errors

actionpack/lib/action_dispatch/middleware/templates/rescues/layout.erbactionpack/lib/action_dispatch/middleware/templates/routes/_table.html.erbの修正です。

デフォルトのエラーページを、prefers-color-scheme CSS media queryを使用してOSのシステムカラーにあったスタイルで表示されるよう修正しています。


Prefer Capybara::Node::Element#execute_script

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

fill_in_rich_text_areaメソッドでCapybara::Node::Element#execute_scriptメソッドを使用して、不要なメソッドの呼び出しを削除するようリファクタリングしています。


Allow filling in the only rich-text area without a locator

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

fill_in_rich_text_areaメソッドをlocatorの指定を無しで使用出来るよう修正しています。locatorの指定が無い場合、最初に見つかったrich-textエリアに値が入力されるようになっています。


Implicit through table joins should be appeared before user supplied joins

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

暗黙のthrough table joinをユーザが指定したjoinより際に実行されるよう修正しています。先に実行するようにしておかないと、ユーザが指定したjoinを使用してthrough associationのロードを行おうとしてしまいエラーになってしまう為。

rails commit log流し読み(2019/05/18)

2019/05/18分のコミットです。

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


Use a single thread for all ConnectionPool Reapers

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

ConnectionPool Reaperでconnection pool毎にスレッドを生成していたのを同じスレッドを使い回すよ修正しています。メモリ使用量削減の為。


Deduplicate ActionText::RichText embeds

actiontext/app/models/action_text/rich_text.rbの修正でうs.

Action Textで一つのrich text内に同じファイルを複数回挿入した場合に、ActiveRecord::RecordNotUniqueエラーが出てしまうバグがあったのを修正しています。


Rename hash to jar in CookieJar.build

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

CookieJar.buildメソッド内のローカル変数を適切な名前に変更しています。


Merge pull request #36263 from vishaltelangre/add-undefined-acronym

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

Single Table InheritanceSingle Table Inheritance (STI)に修正しています。


Merge pull request #36282 from yoones/add-skip-options-to-command-line-guide

rails guideのThe Rails Command Lineの修正です。

rails newの項にrails newに指定出来るオプションについての説明を追加しています。

rails commit log流し読み(2019/05/16)

2019/05/16分のコミットです。

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

activestorage/CHANGELOG.md


Inline anemic methods

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

一箇所でしか使用してなかったメソッドを、メソッドにするのをやめてインラインで処理を行うよう修正しています。


Remove outdated cross-origin redirection tests

activestorage/test/controllers/blobs_controller_test.rbactivestorage/test/controllers/representations_controller_test.rbの修正です。

Revert ensure external redirects are explicitly allowedにより不要になったcross-originのリダイレクトに関するテストを削除しています。


Merge pull request #36286 from vishaltelangre/dummy-erb-compiler-fix

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

DummyCompiler#compile_contentメソッドのリファクタとして、erbタグの内容により出力内容を変えていたのを、全ての場合で空文字をダミー文字列として使用するようにしています。


Permit running jobs in system tests

Action Packの修正です。

ActionDispatch::SystemTestCaseの親クラスをActionDispatch::IntegrationTestからActiveSupport::TestCaseに変更しています。system testでActive Jobのtest helperを使用出来るようにする為。


S3: permit uploading files larger than 5 GB

activestorage/lib/active_storage/service/s3_service.rbの修正です。

Active StorageでS3にファイルアップロードする際に、ファイルサイズが100MB以上の場合はmultipart uploadsでファイルを分割してアップロードするようにしています。

S3では1回のPUT処理でアップロードできるファイルサイズが最大5GBという制限があり、その制限を回避し5GB以上のファイルをアップロード出来るようにする為にmultipart uploadsを使用するようにしています。なお、100MBをしきい値にしているのは、100MBを超えるファイルの場合はこのmultipart uploadの使用が推奨されている為。

rails commit log流し読み(2019/05/15)

2019/05/15分のコミットです。

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


Merge pull request #36200 from soartec-lab/update_guide_configuring_add_autoloader

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

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


edit tweaks to recent patch in configuring guide [ci skip]

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

config.autoloaderについて説明している箇所の言い回しを修正しています。


Fix eager loading associations with string joins not to raise NoMethodError

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

joinsの条件をStringで指定 + associationのeager loadを実行した際にNoMethodErrorがraiseされてしまうバグがあったのを修正しています。

rails commit log流し読み(2019/05/14)

2019/05/14分のコミットです。

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

actiontext/CHANGELOG.md

actionpack/CHANGELOG.md


Add ActionDispatch::SystemTestCase#fill_in_rich_text_area

Action Textの修正です。

system testでTrix editorに値を入力する為のfill_in_rich_text_areaメソッドを追加しています。

# <trix-editor id="message_content" ...></trix-editor>
fill_in_rich_text_area "message_content", with: "Hello <em>world!</em>"

Trix editorは、idplaceholderaria-labelnameで検索出来るようになっています。


Merge pull request #36127 from st0012/fix_non_num_keys

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

strong parametersのnested attributesのパース処理で、値に不正なkeyが含まれていた場合に全てのattributesをブロックしていたのを、不正なkeyの要素だけをブロックするよう修正しています。


Merge pull request #36237 from eileencodes/fix-erb-in-database-yaml-again

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

database.ymlに条件演算子(e.g. <%= ENV['_HOST'] ? 'host: ' + ENV['_HOST'] : 'socket: /var/run/mysqld/mysqld.sock' %>)が使用されていた場合に、database.ymlロード時にエラーになってしまうバグがあったのを修正しています。


shortens a comment [ci skip]

rails guideのUpgrading Ruby on Railsの修正です。

Autoloadingの項のグラマーの修正を行っています。

rails commit log流し読み(2019/05/13)

2019/05/13分のコミットです。

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


upgrading docs: one file => one constant [ci skip]

rails guideのUpgrading Ruby on Railsの修正です。

One file, one constant (at the same top-level)の項を追加し、Zeitwerkを使用した場合、1つのファイルでは同じトップレベルに1つの定数しか定義出来ない制限について説明を追加しています。


Merge pull request #36255 from eugeneius/sqlite_savepoint_support

Active Recordのdocの修正です。

SavepointsやPartial indexeについて説明している箇所からSQLite3のバージョンについての説明を削除しています。Rails 6.0でサポートしているSQLite3ではそれらの機能は全て使用出来る為。


warn about non-eager loaded dirs in zeitwerk:check

railties/lib/rails/tasks/zeitwerk.rakeの修正です。

zeitwerk:checkで、autoloadされるけどeager loadされないディレクトリがあった場合に、ワーニングメッセージを出すよう修正しています。


adds a blank line [ci skip]

railties/lib/rails/tasks/zeitwerk.rakeの修正です。

適切な箇所に空行を追加しています。


[skip ci] Fix missing punctuation mark and formatting

activerecord/CHANGELOG.mdの修正です。

メソッド名をバッククォートで囲むよう修正しています。


Merge pull request #36260 from vishaltelangre/active_record-collection_cache_versioning-config-info

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

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


Improve doc for :root option in as_json() [ci skip]

activemodel/lib/active_model/serializers/json.rbのdocの修正です。

as_jsonメソッドのrootオプションにStringを指定した場合のexampleを追加しています。


[skip ci] The default value of config.active_record.collection_cache_versioning without loading Railtie is false

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

config.active_record.collection_cache_versioningのデフォルト値についての説明に誤りがあったのを修正しています。


Don't track implicit touch mutation

activerecord/lib/active_record/attribute_methods/dirty.rbactiverecord/lib/active_record/touch_later.rbの修正です。

明示的でないtouch処理による変更はtrackしないよう修正しています。

Fix dirty tracking for touchで明示的かどうかに関わらず、全てのtouch処理をdirty trackingで更新内容をtrack出来るよう対応しました。ただ、既存のアプリはユーザが明示的に行った処理のみtrack出来る事を期待しているようで、既存のアプリに影響を与えるのを避ける為、上記対応を行っています。