なるようになるブログ

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

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

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

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


PERF: avoid allocating column names where possible

activemodel/lib/active_model/attributes.rbactiverecord/lib/active_record/attribute_methods.rbactiverecord/lib/active_record/result.rbの修正です。

column nameを生成する際に、dup + freezeしていたのを、String#-@を使用するように修正しています。不要なObjectの生成を減らせるようにする為。


Child joins should be aliased when merging relations

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

relationsをmergeする際に、子のJOIN処理でaliasを指定するよう修正しています。aliasの指定が無いとtableやfieldsが重複した場合に、エラーになってしまう為。


Fix force equality checking not to break the serialized attribute with Array

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

predicateを生成する為の型チェック処理を修正した、Make force equality checking more strictly not to allow serialized attributeの影響で、serialized attributeにArrayが含まれていた場合に値が取得出来ないバグが発生していたのを修正しています。

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

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

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

activerecord/CHANGELOG.md


Correct default value of unknown_asset_fallback

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

config.assets.unknown_asset_fallbackについて説明している箇所で、デフォルト値がtrueになっていたのをfalseに修正しています。

厳密にはattributeに指定されているデフォルト値はtrueなのですが、load_defaultsメソッド内で値にfalseが指定されるので、新規に作成したRailsアプリケーションでユーザが使用する際は基本falseになっています。


Merge pull request #33047 from artfuldodger/patch-3

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

Testing Helpersの項のグラマーを修正しています。


Merge pull request #33029 from fedxgibson/raise_with_duplicate_columns

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

migrationファイルに同じ名前のカラムが複数定義されていた場合に、ArgumentErrorをraiseするよう修正しています。

rails commit log流し読み(2018/06/04)

2018/06/04分のコミットです。

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


Fix save in after_create_commit won't invoke extra after_create_commit

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

after_create_commit callback内でレコードのsaveを実行した場合に、再度after_create_commit callbackが実行されてしまうバグがあったのを修正しています。


Exclude upload time from instrumented preview time

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

preview処理のinstrumentに、ファイルのダウンロード処理に関する時間を含まないよう修正しています。


Don't expose Enumerable#_original_sum_with_required_identity which is internal API [ci skip]

activesupport/lib/active_support/core_ext/enumerable.rbのdocの修正です。

内部向けAPIであるEnumerable#_original_sum_with_required_identityメソッドがAPI docに表示されないよう修正しています。


Initialization block is a part of build_record

Active Recordの修正です。

record初期化処理用のblockをbuild_recordメソッド内で実行するよう修正しています。before_add callbackより前に実行されるようにするため、のようです。

rails commit log流し読み(2018/06/03)

2018/06/03分のコミットです。

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


record.destroy on new record won't invoke after create commit callbacks

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

DBに保存されていないrecordに対してdestroyメソッドを呼び出した際に、after create commit callbackが実行されてしまうバグがあったのを修正しています。


Remove unnecessary test

railties/test/generators_test.rbの修正です。

generator名をタイポした際に複数のサジェストが表示されることを確認するテストを削除しています。

Use did_you_mean spell checker for option suggestions以降、サジェストは一つしか表示されなくなっている為。

rails commit log流し読み(2018/06/02)

2018/06/02分のコミットです。

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

activestorage/CHANGELOG.md


Merge pull request #33018 from kddeisz/defined-attachments

Active Storage、Active Recordの修正です。

Active Storageにattachmentsのメタデータを取得する為のReflection moduleを追加しています。

class User < ApplicationRecord
  has_one_attached :avatar
end
reflection = User.reflect_on_attachment(:avatar)
# => #<ActiveStorage::Reflection::HasOneAttachedReflection:0x0000563e04562528 @name=:avatar, @scope=nil, @options={:dependent=>:purge_later}, @active_record=User (call 'User.connection' to establish a connection), @klass=nil, @plural_name="avatars">
reflection.name
# => :avatar
reflection.macro
# => :has_one_attached

Merge pull request #33039 from ybakos/guides/layouts_and_rendering_class_spelling_fix

railsガイドのLayouts and Rendering in Railsの修正です。

クラス名について説明している箇所で、先頭文字が小文字になっていたのを大文字に修正しています。

rails commit log流し読み(2018/06/01)

2018/06/01分のコミットです。

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


Merge pull request #33034 from utilum/remove_mocha_from_action_cable

Action Cableのテストの修正です。

mock処理にmochaを使用していたのを、Minietstのmock及びRails内部のヘルパーメソッドを使用するよう修正しています


CI against MariaDB 10.3

.travis.ymlactiverecord/test/cases/adapters/mysql2/virtual_column_test.rbの修正です。

CIで使用するMariaDBのバージョンを10.3に更新、及び、MariaDB 10.3でLENGTH()OCTET_LENGTH()に変換するようになってしまい、その影響でコケるテストがあったのを修正しています。

参考:SQL_MODE=ORACLE From MariaDB 10.3


[skip ci] Add changelog about bumping minimum SQLite version to 3.8

activerecord/CHANGELOG.mdの修正です。

サポートするSQLiteのバージョンを3.8以上に修正した、Bump minimum SQLite version to 3.8の対応についてCHANGELOGにエントリーを追加しています。


Merge pull request #33040 from ybakos/guides/active_storage_overview_example_syntax_fix

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

has_one_attachedメソッドのexampleコードから不要なCurrentの指定を削除しています。

rails commit log流し読み(2018/05/31)

2018/05/31分のコミットです。

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

actionmailer/CHANGELOG.md


Bundle update

Gemfile.lockの修正です。

bundle updateを実行して各gemを更新しています。


ActionMailer::Base can unregister observer(s) and interceptor(s). (#32207)

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

ActionMailer::Baseに登録したobserver、interceptor(あとpreview interceptorも)を登録解除する為のメソッドを追加しています。

元々はobserverもinterceptorも登録だけはできて登録解除が出来ない、という状態だったのですが、これで任意に登録解除が出来るようになりました。


Avoid unused capture in non_xhr_javascript_response?

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

ActionController::RequestForgeryProtection#non_xhr_javascript_response?メソッドで、JavaScriptかどうかをチェックする正規表現で不要なキャプチャを生成しないよう、?:を指定するよう修正しています。


Include blob ID in tempfile name for debugging convenience

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

ActiveStorage::Blob#blobメソッドで生成するtempfileのファイル名にblob IDを含むよう修正しています。デバッグしやすくする為、との事です。


Remove errant debugger call

activestorage/test/models/blob_test.rbの修正です。

先の対応の際にテストコードにbyebugを指定したままになっていたのを修正しています。


[ci skip] "brethen" is misspelled and unclear

activesupport/CHANGELOG.mdの修正です。

index_withメソッドを追加した対応のエントリーでタイポしている箇所があったのを修正、及び、説明を追加しています。