Location via proxy:   
[Report a bug]   [Manage cookies]                

なるようになるブログ

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

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

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

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


Remove superfluous call to Hash#deep_symbolize_keys

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

EncryptedConfiguration#deep_symbolize_keysメソッド内の処理から、不要なdeep_symbolize_keysの呼び出しを削除しています。


Add missing periods to development/production.rb.tt [ci-skip]

railties/lib/rails/generators/rails/app/templates/config/environments/development.rb.ttrailties/lib/rails/generators/rails/app/templates/config/environments/production.rb.ttのコメントの修正です。

コメントの末尾にピリオドを追加しています。


Clean up more code related with #52817

Active Recordの修正です。

MySQL 5.5のサポートを削除した、Drop MySQL 5.5 supportに関連して、不要なメソッドの削除、テスト内の不要な分岐の削除等を行っています。


Ensure AS::Deprecation::Reporting constants stay private

activesupport/lib/active_support/deprecation/reporting.rbのdocの修正です。

ActiveSupport::Deprecation::Reporting内の定数に:nodoc:を指定して、API docに表示されないよう修正しています。


docs: Fix typos in guide

rails guideの修正です。

guide内のタイポの修正を行っています。


Merge pull request #44859 from ghousemohamed/extend-as-json-serilization-test-for-activemodel

activemodel/test/cases/serializers/json_serialization_test.rbactivemodel/test/models/address.rbの修正です。

as_jsonメソッド各種オプションを指定した場合等のテストを追加しています。


Merge pull request #52826 from jhawthorn/as_json_options_dup

Active Model、Active Supportの修正です。

to_jsonメソッドにoptionsを指定した場合に、配列内のすべての要素とハッシュ内のすべての値に対して、そのoptionsの複製が作成されていたのを、同じoptionsを使い回すよう修正しています。


Consolidate timestamps tests for #34970 and a939506

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

timestampsのデフォルト値及びprecision値に関するテストで、別のテスト同じようなチェックを行っていたのを、テストを統合し1つのテストで両方の内容を確認するよう修正しています。


Autocorrect rubocop violations

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

Rubocopのチェックでエラーになる箇所があったのを修正しています。

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

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

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


remove blank line from the end of passwords_controller template to keep rubocop happy (#52833)

railties/lib/rails/generators/rails/authentication/templates/controllers/passwords_controller.rbの修正です。

ファイル末尾の空行を削除しています。


Store session_id in cookies only once (#52831)

railties/lib/rails/generators/rails/authentication/templates/controllers/concerns/authentication.rbの修正です。

authentication generatorが生成するcontroller内の処理で、session_idのcookiesへの保存が2回行われていたのを、一度だけ行うよう修正しています。


Simplify the authentication concern

railties/lib/rails/generators/rails/authentication/templates/controllers/concerns/authentication.rbの修正です。

authentication generatorが生成するconcernについて、不要な分岐の削除、一度しか使用していないメソッドの削除等を行っています。


Strongly dislike the _1 aesthetic

railties/lib/rails/generators/rails/authentication/templates/models/user.rbの修正です。

authentication generatorが生成するmodelで_1を使用している箇所があったのを使用しないよう修正しています。_1が好きではないため、との事です。


Remove unused permission_policy test helpers

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

使用していないテスト用のhelperメソッドを削除してます。


Merge pull request #52822 from byroot/active-model-alias

activemodel/lib/active_model/attribute_methods.rbの修正です。

modelでdefine_attribute_methods及びattr_accessorで独自のattributeを指定している場合に、そのattributeに対するalias_attributeが正しく動作しないバグがあったのを修正しています。


Revert "alias_attribute: handle user defined source methods"

直前の`activemodel/lib/active_model/attribute_methods.rbの対応をRevertしています。まだ対応中のPRを誤ってmergeしてしまった為、との事です


alias_attribute: handle user defined source methods

activemodel/lib/active_model/attribute_methods.rbの修正です。

modelでdefine_attribute_methods及びattr_accessorで独自のattributeを指定している場合に、そのattributeに対するalias_attributeが正しく動作しないバグがあったのを、改めて修正しています。

rails commit log流し読み(2024/09/08)

2024/09/08分のコミットです。

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

actionpack/CHANGELOG.md


Add Parameters#expect to safely filter and require params (#51674)

Action Packの修正です。

ActionController::Parametersにパラメータのfilter/requireをする為のexpectメソッドを追加しています。元々はrequire + permitで行っていたのですが、require + permitだと不正なパラメータが送信された場合に500になってしまう、という問題があり、不正なパラメータの場合も400エラーを適切に返せるようにする為に新しいAPIが追加されました。

例えば、params.require(:person).permit(:name, :age, pets: [:name])と記載していて、パラメータが?person=hackedだった場合500になってしまっていました(:personの値がStringなのでNoMethodErrorになってしまう)。これがexpectだと、params.expect(person: [ :name, :age, pets: [[:name]] ])と記載でき、上記パラメータの場合でもActionController::ParameterMissingが期待通りにraiseするようになっています。

また、expectではrequire + permitより厳密にパラメータをチェックするようになっており、引数がArrayの場合、[[]](e.g. [[:name]])を使用しなければならない、等の違いがあります。require + permitは引き続き使用出来るようになっていますが、rails guideやgeneratorが生成するコードはexpectを使用するよう修正されており、基本的にはexpectを使用するのが推奨されるようになっています。

rails commit log流し読み(2024/09/07)

2024/09/07分のコミットです。

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

actionpack/CHANGELOG.md

activerecord/CHANGELOG.md


Use implication for skip_active_record/skip_solid (#52802)

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

rails new--skip_active_recordオプションを指定した場合に、自動的にskip_solidも設定するよう修正しています。Solid QueueもSolid CacheもActive Recordに依存している為。


Replace deprecated PWA tag with newer one (#52738)

railties/lib/rails/generators/rails/app/templates/app/views/layouts/application.html.erb.ttの修正です。

PWA用のタグとして、mobile-web-app-capableを追加しています。元々はapple-mobile-web-app-capableだけが追加されていたのですが、apple-mobile-web-app-capableはdeprecatedになっており、mobile-web-app-capableが推奨されているため。が、この推奨をしているのはChromeのみで、どうやらSafariではまだapple-mobile-web-app-capableを指定する必要がありそうな為、apple-mobile-web-app-capableはそのままにして、mobile-web-app-capableを追加するだけにしています。


system testing: disable chrome's search engine choice modal

actionpack/lib/action_dispatch/system_testing/browser.rbの修正です。

system testでChromeを起動する際に、デフォルトでsearch engine choice modalを無効化するよう修正しています。検索エンジンの選択画面が出る事でテストが期待通りに動かない事がある為。


Drop MySQL 5.5 support

Active Recordの修正です。

MySQL 5.5のサポートを削除しています。MySQLのサポートの最小バージョンはMySQL 5.6.4になっています。MySQL 5.5は既にEOLになっている、かつ、datetimeでprecisionをサポートしていないバージョンの為、このサポートを削除出来るとコードのクリーンアップが出来る為、との事です。


Merge pull request #52797 from fatkodima/fix-nested-attributes-for-cpk

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

composite primary keysを使用しているmodelでnested attributesのupdate処理が正しく動作しないバグがあったのを修正しています。


Merge pull request #52792 from jimnanney/order-dependent-nested-attributes

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

nested associationの更新処理で、primary key用のattributeをattributesの最初に指定してないと、エラー(RecordNotFound)になってしまうバグがあったのを修正しています。


Merge pull request #50198 from fatkodima/fix-duplicate-deferrable-directive

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

PostgreSQL及びSQLite adapterで、foreign keysに対するDEFERRABLE directiveが誤って2回指定されていたのを、1回だけ指定するよう修正しています。


Fix rate limiting for ActionController::API controllers

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

ActionController::APIを継承しているcontrollerでrate_limit APIを使用するとエラーになってしまうバグがあったのを修正しています。


Deprecate unsigned_float and unsigned_decimal short-hand column methods

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

MySQL adapterのschema用のunsigned_float及びunsigned_decimalメソッドをdeprecatedにしています。MySQL 8.0.17からFLOAT、 DOUBLE、及び、DECIMALのcolumnに対してUNSIGNEDを指定するのがdeprecatedになっている為。

参考:MySQL :: MySQL 8.0 Reference Manual :: 13.1.1 Numeric Data Type Syntax


Tweak specific db schema

Active Recordのテストの修正です。

db schema内でconnetionのメソッドを使用する際に、不要なActiveRecord::Base.lease_connectionの指定を削除しています。


Sync mysql2 and trilogy specific schema

activerecord/test/cases/defaults_test.rbactiverecord/test/schema/trilogy_specific_schema.rbの修正です。

mysql2 adapterとtrilogy adaterでテストで使用するschemaに差異が出来てしまっていたのを、同じ内容になるよう修正しています。

rails commit log流し読み(2024/09/06)

2024/09/06分のコミットです。

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

railties/CHANGELOG.md

activesupport/CHANGELOG.md

activerecord/CHANGELOG.md


Add Solid Queue alongside Solid Cache (#52804)

railtiesの修正です。

rails newで新規にアプリを作成した際に、production用のActive JobのbackendとしてSolid Queueを使用するよう修正しています。デフォルトでSolid Queueを使用するようになっており、使用したくない場合は、--skip_solidオプションを指定すれば良いようになっています。


Update TimeWithZone#inspect to match Ruby 1.9+

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

ActiveSupport::TimeWithZone#inspectで使用するTimeのフォーマットをISO 8601 style(%a, %d %b %Y %H:%M:%S.%9N)に変更しています。Ruby本体のTime#inspectのフォーマット合わせる為。


Fix Solid Queue changelog db info

railties/CHANGELOG.mdの修正です。

Solid Queueに関するエントリー内のタイポを修正しています。


Merge pull request #52810 from chaadow/fix_action_view_code_gen

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

form selectors用のメソッドを生成する際に、メソッド毎にActiveSupport::CodeGeneratorインスタンスを生成していたのを、1つのインスタンスですべてのメソッドの生成を行うよう修正しています。


Use deliver_now! instead of deliver_now

actionmailer/test/callbacks_test.rbの修正です。

deliver_now!のテストでdeliver_nowを使っていたのをdeliver_now!を使用するよう修正しています。


Update filter_parameters default in configuring guide [ci skip]

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

config.filter_parametersのデフォルトの値が、実際の値と異なっていたのを修正しています。


Bring back deleted middleware test (#52812)

railties/test/commands/middleware_test.rbの修正です。

Silence healthcheck requests from the logの対応で誤って削除されてしまったActionDispatch::SSL middlewareに関するテストを戻しています。


Allow async queries in transactional fixtures

Active Recordの修正です。

transactional fixtures内でasync queriesを実行出来るよう修正しています。元々はasynchronous queriesはtransactional fixtures内では実行出来なかった(transactional fixturesはすべてのSQLを同じconnectionで実行するよう強制していた為)のですが、transactional fixturesをconnectionのキャッシュに依存しないようリファクタリングした(Decouple transactional fixtures and active connections)ため、使用出来るようになったとの事です。

rails commit log流し読み(2024/09/05)

2024/09/05分のコミットです。

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

railties/CHANGELOG.md


Fix init with to change the right variable

activemodel/lib/active_model/validations.rbの修正です。

init_internalsメソッドで初期化する変数名に誤りがあったのを修正しています。


Autload SilenceRequest in Rails::Rack

railties/lib/rails.rbrailties/lib/rails/rack.rbの修正です。

SilenceRequest middlewareが必ずロードされるようになっていたのを、autoloadの対象に変更して不要な場合はloadされない修正しています。


Merge pull request #52774 from amomchilov/Object-as_json-hoist-nil-check

activesupport/lib/active_support/core_ext/object/json.rbの修正です。

Array#as_json及びHash#as_jsonで引数のoptionsnilチェックがloop内で行われていたのを、loopの外に出して一度だけ行うよう修正しています。


Add Solid Cache (and get ready for Solid Queue) (#52790)

railtiesの修正です。

rails newで新規にアプリを作成した際に、production用のcache storeとしてrails/solid_cacheを使用するよう修正しています。デフォルトでSolid Cacheを使用するようになっており、使用したく無い場合は、skip_solidオプションを指定すれば良いようになっています。


Fix authentication generator double signature (#52786)

railties/lib/rails/generators/rails/authentication/templates/controllers/concerns/authentication.rbの修正です。

authentication generatorで生成するコードで、cookiesに格納するsession idが二回signedされてしまっていたのを、一度だけ行うよう修正しています。


Update devcontainer to use ruby 3.3.5

.devcontainer/Dockerfileの修正です

devcontainerで使用するRubyのバージョンを3.3.5に更新しています。


Add an internal API to trigger association loading asynchronously

Active Recordの修正です。

associationのloadingを非同期に行う為のAPI(async_load_target)を追加しています。しかし、まだ公開出来る段階ではないようで、このPRではinternal APIとして追加されて、今後検証を進める、との事です。


Fix a typo from PR #52807

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

テスト用のクラスで、クラス名にタイポしている箇所があったのを修正しています。

rails commit log流し読み(2024/09/04)

2024/09/04分のコミットです。

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

railties/CHANGELOG.md


align documentation with conventional practice

railties/lib/rails/railtie.rbのdocの修正です。

Rails::Railtieのdoc内の独自のRailtieクラスを定義する場合のexampleコードで、gemのnamespace配下でクラスの定義やセットアップをするよう修正しています。通常gemのnamespace配下でクラスの作成をするのが推奨されているため。


Add require for ClassAttribute in class/attribute core extension

activesupport/lib/active_support/core_ext/class/attribute.rbの修正です。

不足していたactive_support/class_attributeのrequireを追加しています。


Merge pull request #52779 from yahonda/use_uri_0_13_1_and_rfc_2396_parser

URI::DEFAULT_PARSERを使用していた箇所をURI::RFC2396_PARSERを使用するよう修正しています。default parserが今後RFC2396_PARSERからRFC3986_Parserに変わる予定があり、元の挙動を維持するには明示的にRFC2396_PARSERを使用する必要があるため。

参考:Bug #19266: URI::Generic should use URI::RFC3986_PARSER instead of URI::DEFAULT_PARSER


Silence healthcheck requests from the log (#52789)

railtiesの修正です。

logの出力を抑止するためのRails::Rack::SilenceRequest middlewareを追加し、health check用のpathでのログを抑止出来るよう対応しています。health checkのpathはconfig.silence_healthcheck_pathで指定出来るようになっています。


Use 127.0.0.1 instead of localhost so Docker DB can be easily used (#52778)

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

新規にアプリケーションを生成した場合のDBの接続先のデフォルトをlocalhostから127.0.0.1に変更しています。Docker環境で設定変更無しに使用出来るようにするため。


[RF-DOCS]Active Record Associations Guide [ci-skip] (#52523)

rails guideの修正です。

Active Record Associations guideについて、全体の言い回しやフォーマットの修正、relationの画像からclassのテキストを削除し説明がわかりやすくなるよう修正、STIやDelegated Typesに関する説明の追加等を行っています。合わせて、Composite Primary Keys guideへの説明の追加等も行っています。


Fix find_by_token_for for models with composite primary keys

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

composite primary keysを使用しているmodelに対するfind_by_token_forが正しく動作しないバグがあったのを修正しています。