なるようになるブログ

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

rails commit log流し読み(2020/11/03)

2020/11/03分のコミットです。

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

activerecord/CHANGELOG.md

railties/CHANGELOG.md

activemodel/CHANGELOG.md

actionpack/CHANGELOG.md

activesupport/CHANGELOG.md


Fix broken sqlite3_mem tests

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

current_preventing_writesのテストを定義する箇所を誤っていたのを修正しています。


Tweak generated default filter_parameters

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

デフォルトのfilter_parametersの値から、無害と思われるような値(e.g. access)を削除しています。


Merge pull request #40492 from nateberkopec/puma5

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

rails newで生成するGemfile内のPumaのバージョン指定を、5系を使用するよう修正しています。


Merge pull request #40504 from tbrisker/paramobjects

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

parametersのwrapping処理で、excludeオプションが指定されていない場合に、不要なオブジェクトの生成を行わないよう修正しています。


Merge pull request #40481 from jonathanhefner/guide-getting_started-rework

rails guideのGetting Started with Railsの修正です。

guide全体について、言い回しの修正や、リソースについての説明の順番等の修正を行っています。


Merge pull request #40500 from jonathanhefner/guides-irb-code-fences

irbのコードexampleで、コードハイライトが正しく表示されるよう修正しています。


Prepare the maintenance policy to match the 6.1 release

rails guideのMaintenance Policy for Ruby on Railsの修正です。

6.1のリリースに合わせて、メンテナンス対象のバージョンの説明を修正しています。


Allow applications to change the behavior for a strict loading violation

Active Recordの修正です。

strict loading violation時の動作がexception(ActiveRecord::StrictLoadingViolationError)のraiseだけだったのを、log出力を指定出来るよう修正しています。productionのようにexceptionをraiseしたくない環境向け。

log出力にしたい場合、config.active_record.action_on_strict_loading_violationlogを指定すれば良いようになっています。


Allow a new server Railtie block:

railtiesの修正です。

rails server起動時に実行する処理を定義出来るよう修正しています。Railtie#server hookで指定した処理がserver起動時時に呼ばれるようになっています。

  class MyRailtie < Rails::Railtie
    server do
      WebpackServer.run
    end
  end

Merge pull request #40434 from filipe-sabella/pass-in-base-in-validation-messages

activemodel/lib/active_model/error.rbactivemodel/lib/active_model/errors.rbの修正です。

Error.human_attribute_namebase_class引数をbase(オブジェクト)に変更しています。

human_attribute_nameメソッドで他のattributeの値を使用したいケースがある為。


Fix CHANGELOG [ci skip]

activemodel/CHANGELOG.mdの修正です。

CHANGELOGのエントリーのフォーマットに誤りがあったのを修正しています。


Add connected_to_many API

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

複数のconnectionを1度に接続する為のconnected_to_many APIを追加しています。

複数のconnectionに対して同時に処理を行う場合に、blockをネストせずに処理を行えるようにするため。

ActiveRecord::Base.connected_to_many([AnimalsRecord, MealsRecord], role: :reading) do
  # ...
end

Mark Reaper thread as fork-safe w/thread-local variable (#40399)

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

Reaper threadがfork safeなthreadである事をthread変数(fork_safe)でチェック出来るよう修正しています。

Pumaはforkの前後にthreadリストをチェックして、forkの呼び出し中に実行されていた可能性のあるthreadを探して、実行されているthreadがあったらwarningを出すようにしています(リークやデッドロックの可能性がある為)。

そのwarningの対象外である(fork safeである)事を判別出来るようにする為に、上記修正を行っています。

合わせて、Puma側でfork_safeが指定されている変数は無視するよう修正(Ignore forksafe threads for warning)が行われています。


Update comment about reloading in development.rb [ci skip]

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

code reloadが行われるタイミングについてのコメントが現状の挙動と異なっていたのを修正しています。


Tidy up comments in environment configuration files [ci skip]

railtiesの修正です。

各configのコメントのフォーマットを修正しています。


Use official sdoc gem instead of fork [skip ci]

Gemfileの修正です。

sdocを使用するのにforkしたリポジトリを使用していたのを、メインラインのリポジトリを使用するよう修正しています。CSS + Turbolinksでページの表示を行うようにした対応がマージされた為。


Merge pull request #40421 from ayamomiji/master

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

rename_indexの引数にSymbolを指定出来るよう修正しています。


Add request exclusion to Host Authorization

actionpack/lib/action_dispatch/middleware/host_authorization.rbrailties/lib/rails/application/configuration.rbの修正です。

Host Authorization処理で特定のリクエストについては無視出来るよう修正しています。health checkのような処理をhost headerなしで行えるようにする為。

config.host_authorization = { exclude: ->(request) { request.path =~ /healthcheck/ } }

Merge pull request #39832 from p8/scaffold-generator-inflection-check

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

model generatorにinflection ruleが適応出来ない名前が指定された場合に、エラーになるよう修正しています。


Merge pull request #40365 from ankurp/fix/standardize-js-package-name

railties/lib/rails/generators/rails/app/templates/package.json.ttの修正です。

package.jsonのnameにunderscore + dasherizeした値を指定するよう修正しています。

rails newに指定出来るが、package.jsonのnameに指定出来ない文字がある為。


Although libraries support both formats of sign before and after DIGITS(ex: https://github.com/moment/luxon/pull/683, https://github.com/moment/moment/issues/2408), many do not.

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

negative durationsに対してiso8601を実行した場合に、個別のdigitにnegative signを指定するよう修正しています。

# Before
(-1.year - 1.day).iso8601
# => "-P1Y1D"

# After
(-1.year - 1.day).iso8601
# => "P-1Y-1D"

Preparing for 6.1.0.rc1 release

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


[ci skip] Update CHANGELOG for inspect time attributes

activerecord/CHANGELOG.mdの修正です。

time attributesのinspect対応のエントリーについての説明を修正しています。


remove extra class [ci skip]

rails guideのRuby on Rails 6.1 Release Notesの修正です。

exampleコードにclassが2つ記載されている箇所があったのを修正しています。


Remove extra class [ci skip]

activerecord/CHANGELOG.mdの修正です。

exampleコードにclassが2つ記載されている箇所があったのを修正しています。


Fix documentation for sharded dbs

rails guideのMultiple Databases with Active Recordの修正です。

Horizontal shardingの項のexampleコード内のコメントの修正を行っています。


Create unit test to use to_time for timestamp in string

activesupport/test/core_ext/string_ext_test.rbの修正です。

timestampのStringに対してto_timeを呼び出した場合のテストを追加しています。


Fix formatting issue with multuple db docs

rails guideのMultiple Databases with Active Recordの修正です。

Horizontal shardingの項のexampleコードのフォーマットの修正を行っています。