なるようになるブログ

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

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

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

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


Unify AR save method signature to take keyword arguments a

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

saveメソッドでキーワード引数を受け取れるよう引数指定を修正しています。


AMo::Error#initialize takes keyword arguments

activemodel/test/cases/error_test.rbの修正です。

ActiveModel::Error#initializeメソッドでキーワード引数を受け取れるよう引数指定を修正しています。


type_to_sql takes keyword arguments

activerecord/lib/active_record/connection_adapters/abstract/schema_creation.rbactiverecord/lib/active_record/connection_adapters/postgresql/schema_creation.rbの修正です。

キーワード引数にdouble splatを指定するよう修正しています


Fix keyword arguments warnings for schema statements

activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rbactiverecord/lib/active_record/connection_adapters/sqlite3_adapter.rbの修正です。

キーワード引数にdouble splatを指定するよう修正しています


Fix keyword arguments warnings for schema definitions

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

キーワード引数にdouble splatを指定するよう修正しています


form_authenticity_token takes keyword arguments

form_authenticity_tokenメソッドでキーワード引数を受け取れるよう引数指定を修正しています。


Unify create_table method signature to take keyword arguments

activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rbactiverecord/lib/active_record/migration/compatibility.rbの修正です。

create_tableメソッドでキーワード引数を受け取れるよう引数指定を修正しています。


Passing in a Hash instance as non-kwargs parameters has to be curly braced

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

Hashを非キーワード引数として渡す際に{}で囲むよう修正しています。


define_attribute takes keyword arguments

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

define_attributeメソッドでキーワード引数を受け取れるよう引数指定を修正しています。


There are some Rack middleware take keyword arguments for initializing

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

Rack middlewareのインスタンス生成処理でキーワード引数を渡す際にdouble splatを指定するよう修正しています。

が、古いRubyでエラーになってしまう為、後ほどRevertされています。


Revert "There are some Rack middleware take keyword arguments for initializing"

直前のコミットをRevertしています。

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

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

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

activerecord/CHANGELOG.md

activejob/CHANGELOG.md


Merge pull request #37185 from seejohnrun/config-symbols

Active Recordの修正です。

database configurationのkeyが処理によってStringだったりSymbolだったりしていたのを、全てSymbolで扱うよう修正しています。

合わせて、keyがStringの値を返すようになっていたDatabaseConfig#configをDeprecateにし、keyがSymbolのconfigを返すDatabaseConfig#configuration_hashを追加しています。


Fix setting a more verbose thread-local log level

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

LoggerThreadSafeLevel#addメソッドでlog levelをチェックする際に、スレッドローカル変数ではなくインスタンス変数を参照するようになっていたのを、スレッドローカル変数を参照するよう修正しています。

これはそもそもRubyLoggerがlog levelをチェックする際にインスタンス変数を参照するようになっていた為で、サブクラスでlog levelを変更してもそれが使用されないようになっていました。

そのため、親クラスであるLoggerの処理を呼ばず、LoggerThreadSafeLevel側で処理全てを行うようにしています。因みに、Logger側にパッチを送って上記問題につていは修正済みとの事です。参考: Honor Logger#level overrides


Prefer assert_not_includes

activesupport/test/logger_test.rbの修正です。

assert_not + include?を使用していた箇所をassert_not_includesを使用するよう修正しています。


Move ActiveJob::LogSubscriber into its own file

Active Jobの修正です。

ActiveJob::Logging配下にあったLogSubscriberクラスをそれ単体のクラスに切り出しています。


Pass db_config object around instead of hashes

Active Recordの修正です。

connection specificationにconfigをHashではなくdb_configのobjectを渡すよう修正しています。

connection manager周辺でHashではなくdb_configのobjectで値を管理するよう予定しており、その一環との事です。


Stop queue_name_prefix from being global

activejob/lib/active_job/queue_name.rbの修正です。

job classでqueue_name_prefixを指定した場合に、その内容が他のjob classにも影響を与えてしまうようになっていたのを、その指定したjobでのみ指定した値が使用されるよう修正しています。


Merge pull request #37190 from glacials/fix_a_button_to_example

actionview/lib/action_view/helpers/url_helper.rbのdocの修正です。

button_toメソッドのexampleでmethodオプションの指定方法に誤りがあったのを修正しています。


Merge pull request #37111 from okuramasafumi/latest-capistrano-in-asset-pipeline-guide

rails guideのThe Asset Pipelineの修正です。

Precompiling Assetsの項のCapistranoでデプロイする方法について説明している箇所で、Capistrano v3の場合の方法についての説明を追加しています。


IntegrationTest#head also does not accept non-keyword arguments

actionpack/lib/action_dispatch/testing/integration.rbの修正です。

IntegrationTest#headメソッドの引数指定を、キーワード引数の指定に修正しています。


Other get signatures take keyword arguments

actionpack/test/abstract_unit.rbの修正です。

getメソッドの引数指定にキーワード引数の指定を追加しています。


get gets keyworded options

actionpack/test/dispatch/session/cookie_store_test.rbの修正です。

こちらもテスト用のgetメソッドの引数指定にキーワード引数の指定を追加しています。


Reduce proc call

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

CookieJar.buildメソッドから不要なproc callを削除しています。


Passing in a Hash instance as kwargs parameters requires the "double splat" prefix

actionview/lib/action_view/helpers/asset_tag_helper.rbの修正です。

Hashをキーワード引数として渡す際にdouble splatを指定するよう修正しています。


Fix config.cache_classes default value in guide.

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

config.cache_classesについての説明に、Springがインストールされているかどうかでデフォルトが変わる旨説明を追加しています。


tweaks in config.cache_classes docs [skip ci]

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

config.cache_classesについての説明を、クラスとモジュールに変更があった場合のみリロードされる旨説明を修正しています。

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

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

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


activerecord: Allow comment prefix in queries when preventing writes

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

preventing writes処理で、実行するqueryにコメントが含まれている場合も正しくチェック出来るよう修正しています。


Stop autoloading AbstractAdapter prematurely

Active Recordの修正です。

lib/active_recordAbstractAdapterでautoloadしないよう修正しています。AbstractAdapterをトリガーにしてロードされるクラス/モジュールが多く存在しており、不要なまではロードされるのを避けれるようにする為。


Fix keyword arguments warnings

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

キーワード引数として使用している引数にdouble splatの指定を追加しています。


Fix ArgumentError: wrong number of arguments (given 3, expected 2)

activerecord/lib/active_record/association_relation.rbactiverecord/lib/active_record/associations/collection_proxy.rbの修正です。

先の対応の影響でArgumentErrorになってしまった箇所があったので、メソッドに引数指定を追加し対応しています。


Required mysql2 gem 0.5.0

mysql2 gemのバージョン指定を">= 0.4.4"から"~> 0.5"に修正しています。

Raise specific exception on Mysql2::Error::TimeoutErrorで使用されたMysql2::Error::TimeoutErrorがmysql2 0.5.0で追加されており、0.5.0以降を使用するのが必須になった為。


Separate keyword arguments from parameters

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

store classのインスタンスを作成する際にキーワード引数とそれ以外のオプションを明確にわけて渡すよう修正しています。


require open-uri where opening URI

activesupport/test/multibyte_test_helpers.rbの修正です。

不足していたopen-uriのrequireを追加しています。


get gets keyworded options

actionpack/test/controller/flash_test.rbの修正です。

キーワード引数を受け取るメソッドでdouble splatを使用するよう修正しています。


Tests for OptionMerger with keyword arguments

activesupport/test/option_merger_test.rbの修正です。

OptionMergerでキーワード引数を指定した場合のテストを追加しています。


Use keyword arguments instead of last parameter Hash

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

OptionMerger#method_missingメソッドで引数の指定にキーワード引数を使用するよう修正しています。警告抑止対応。


No need to dup before double-splatting a Hash

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

不要なdupの呼び出しを削除しています。

rails commit log流し読み(2019/09/12)

2019/09/12分のコミットです。

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


Fix typo in connection specification error handling

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

adapterの指定が誤っていた際に表示されるエラーメッセージで、adapter名の参照方法に誤りがありエラーになってしまうバグがあったのを修正しています。


Fix credentials:diff option

railties/lib/rails/commands/credentials/USAGEの修正です。

credentials:diffに指定するオプション名に誤りがあったのを修正しています。


Fix error message for AdapterNotFound in spec

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

adapterの指定が誤っていた際に表示されるエラーメッセージで、adapter名の参照方法を修正、及びエラーメッセージが正しく表示される事を確認するテストを追加しています。

という訳で、先のFix typo in connection specification error handlingと全く同じ箇所の修正 + テストの追加なのですが、GitHub上でコミットを見ると、それぞれのコミットで全く同じ修正を行ってるように見えるですがこれ何でなんだろう。因みにblameすると先のコミットだけ表示されます。

rails commit log流し読み(2019/09/11)

2019/09/11分のコミットです。

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

activerecord/CHANGELOG.md


Accept columns passed with options in remove_index

Active Recordの修正です。

remove_indexカラム名以外のオプションを指定した場合にエラーになっていたのを、指定出来るよう(e.g. remove_index :reports, :report_id, unique: true)修正しています。


Merge pull request #37119 from jonathanhefner/fix-escaping-in-view-path-resolver

actionview/lib/action_view/template/resolver.rbの修正です。

pathに()等の特殊な文字が含まれていた場合に、templateの取得処理が正しく動作しないバグがあったのを修正しています。


Unify transaction method signature for eliminating kwargs warning

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

transactionメソッドの引数指定を全ての箇所で同じになるよう修正しています。


Fix keyword arguments warnings

Active Recordの修正です。

キーワード引数の指定にdouble splatを指定するよう修正しています


Unify add_column method definition with other ones that take keyword arguments

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

add_columnメソッドの引数指定を全ての箇所で同じになるよう修正しています。


Workaround for kwargs 2.7 and 2.6 incompatibility

activerecord/test/cases/migration/change_table_test.rbactiverecord/test/cases/migration/command_recorder_test.rbの修正です。

MiniTest::Mock#expectで指定する引数をRuby 2.7とそれ以外で分けるよう修正しています。

キーワード引数の仕様がRuby 2.7で変更になった事に対して、とりあえずCIを通るようにする為の一時対応との事です。


Skip insert all tests when features are unavailable

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

INSERT + ON CONFLICTをサポートしていない環境でinsert_all / upsert_allのテストを実行しないよう修正してます。

ruby masterで使用しているDockerはUbuntu Bionic、かつ、Ubuntu BionicでデフォルトでインスタンスされているSQLite 3は3.22.0でON CONFLICTは使用出来ない為。

rails commit log流し読み(2019/09/10)

2019/09/10分のコミットです。

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

activejob/CHANGELOG.md

activerecord/CHANGELOG.md


Fix documents to replace http with https in reference URL [ci skip]

docの修正です。

各外部ページへのリンクをHTTPSに修正しています。


Merge pull request #37159 from kddeisz/serialize-classes

activejob/lib/active_job/serializers.rbの修正です。

Active JobでClassModuleインスタンスをseralize出来るよう修正しています。


Merge pull request #37161 from eugeneius/bulk_alter_recreate_index

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

bulk ALTERで同じ名前のインデックスの削除及び再作成を出来るよう修正しています。

rails commit log流し読み(2019/09/09)

2019/09/09分のコミットです。

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

activesupport/CHANGELOG.md

activerecord/CHANGELOG.md


Fix Class#new + keyword arguments warnings

Class#newにキーワード引数を渡す際にdouble splatを指定するよう修正しています。


Column takes keyword arguments

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

NullColumn#initializeの引数指定でキーワード引数を明示的に指定するよう修正しています。


I18n.translate takes keyword arguments

actionpack/lib/abstract_controller/translation.rbの修正です。

I18n.translateにキーワード引数を渡す際にdouble splatを指定するよう修正しています。


Fix Class#new + keyword arguments warnings

Class#newにキーワード引数を渡す際にdouble splatを指定するよう修正しています。


Keyword arguments for TableDefinition and create_table_definition

Active Recordの修正です。

TableDefinitioncreate_table_definitionメソッドでキーワード引数の指定にdouble splatを指定するよう修正しています。


Keyword arguments for Type initializers

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

register_integer_typeメソッドでキーワード引数の指定にdouble splatを指定するよう修正しています。


select_all takes keyword arguments

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

select_allメソッドでキーワード引数の指定にdouble splatを指定するよう修正しています。


Keyword arguments for schema manipulation methods

Active Recordの修正です。

schema操作系のメソッドでキーワード引数の指定にdouble splatを指定するよう修正しています。


Errors#add takes keyword arguments

activerecord/lib/active_record/validations/uniqueness.rbの修正でうs.

addメソッドでキーワード引数の指定にdouble splatを指定するよう修正しています。


Support calling include? on beginless and endless ranges.

activesupport/lib/active_support/core_ext/range/include_time_with_zone.rbの修正です。

Range#include?がbeginless Raneとendless Rangeで動作するよう修正しています。


Clear query cache when insert all is used

Active Recordの修正です。

insert, insert_all, upsert, 及び upsert_allメソッドでquery cacheがclearされず、query cache有効時に各処理が誤った結果が返してしまうバグがあったのを修正しています。


Fix docs to update http and www.ruby-doc.org [ci skip]

docの修正です。

http://www.ruby-doc.org へのリンクをhttps://ruby-doc.org に修正しています。


Improve autosave documentation [ci skip]

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

ActiveRecord::AutosaveAssociationのdoc内のexampleコードを、autosaveが指定された場合 / 指定されなかった場合の挙動がよりわかりやすくなるよう修正しています。


Merge pull request #37096 from npras/master

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

リストの中でもword highlightが有効になるようスタイルを修正しています。


Fix folders update watcher with no folders to watch (#36163)

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

クラス内で行っていたlisten gemのロード処理をファイルの先頭で行うようにして、listen gemのインストールが不足していた場合に直ぐ気付けるよう修正しています。


nil.try accepts keyword arguments (and does nothing with them)

activesupport/lib/active_support/core_ext/object/try.rbの指定です。

trytry!メソッドでキーワード引数を受け取れるよう引数指定にdouble splatを追加しています。


Fix keyword arguments warnings

Hashをキーワード引数として渡す際にdouble splatを指定するよう修正しています。