なるようになるブログ

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

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

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

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

activesupport/CHANGELOG.md


Merge pull request #33058 from gmcgibbon/string_first_last_negative_deprecation

activesupport/lib/active_support/core_ext/string/access.rbの修正です。

String#firstString#lastの引数に負の値を指定した場合のサポートがdeprecateになりました。

負の値を指定した場合、指定した数だけ文字が削除された値が返される、という挙動になっていました。

str = "hello"
str.first(-1) # => "hell"
str.last(-2)  # => "llo"

が、これはドキュメントに説明もなく、挙動としてもわかりずらいよね、という事でdeprecateになりました。Rails 6.1からは、負の値を指定した場合ArgumentErrorがraiseされるようになります。


Deprecate the LoggerSilence constant:

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

TOPレベルのLoggerSilence moduleがdeprecateになりました。ActiveSupport::LoggerSilenceは引き続き使用出来るので、今後は全てActiveSupport::LoggerSilenceを使用する必要があります。


Update the docs now that webpacker is default [ci skip]

rails guideの修正です。

各generatorが生成するファイルのexample、及び、生成されるファイルについて説明している箇所にCoffeeScriptのファイルが残っていたのを削除しています。


Turbolinks is enabled by default in new apps [ci skip]

rails guideのWorking with JavaScript in Railsの修正です。

Turbolinksの項に、Turbolinksを使用するにはGemfileにgemを追加して、application.jsでファイルをrequireする必要がある旨説明がされていたのを削除しています。

rails newで新規に作成したapplicationではデフォルトでTurbolinksが使用されるような状態になっている為。


Merge pull request #34051 from gmcgibbon/module_parent_method_rename

Active Supportの修正です。

Module#parentModule#parents、 及び Module#parent_nameメソッドが、それぞれ、module_parentmodule_parentsmodule_parent_nameにリネームされました。古いメソッド名はまだ使えますがdeprecateになっています。

Module#parentsをActive Recordで使っている影響で、Active Recordの子クラスでparentsという名前のscopeを使えない、という問題がありました。

ただ、parentsというのは一般的に使用しそうな名前であり、scopeで使用出来るようにすべきだよね、という相談があった結果、そもそもの原因になっていたメソッド名が変更される事になりました。


Move UPDATE/DELETE with JOIN handling to the Arel side

Active Record、Arelの修正です。

UPDATE / DELETEにJOINを指定した場合の処理をArel側で行うよう修正しています。


:warning: assigned but unused variable - logger

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

テストでassigned but unused variable - loggerのwarningが出ていたのを対応しています。


Bring config_accessor's API document back to its life

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

ActiveSupport::Configurable moduleのconfig_accessorメソッドがAPI docに表示されるよう:doc:の指定を追加しています。

config_accessorメソッドは元々API docに表示されていた(public API)のですが、config_accessorをprivateメソッドに変更する対応(Privatize config_accessor as with attr_accessor)の影響でAPI docに表示されなくなってしまっていた為、再度表示されるようにしています。