なるようになるブログ

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

rails commit log流し読み(2017/08/21)

2017/08/21分のコミットです。

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


Don’t expose prepare_column_options

Active Recordの修正です。

ColumnDumper#prepare_column_optionsメソッドの可視性をprivateに変更しています。内部だけで使うメソッドの為。


Place update_table_definition consistently in SchemaStatements

Active Recordの修正です。

Adapterクラスに定義されていたupdate_table_definitionメソッドをSchemaStatements module配下に移動しています。 schema定義に関するメソッドだからですかね。


Prefer formatted number as schema version [ci skip]

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

ActiveRecord::Schema.defineメソッドのdoc内のexampleのversionをフォーマットした値に修正しています。

-    #   ActiveRecord::Schema.define(version: 20380119000001) do
+    #   ActiveRecord::Schema.define(version: 2038_01_19_000001) do

use formatted number as schema versionで変更された値に合わせています。


Require “active_support/core_ext/hash/compact” for compact!

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

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


freshen :expires option with duration support and add expiry metadata to cookies

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

signed/encrypted cookies に有効期限をしめすexpiresオプションを使えるよう修正しています。

cookies[:user_name] = { value: "assain", expires: 2.hours }

上記のように指定出来るようになっています。


Add executable file activestorage/bin/test

Active Storageのtestでtest runnerを使用する為のactivestorage/bin/testを追加しています。


Rename ActiveStorage::Filename#extname to extension_with_delimiter

activestorage/app/models/active_storage/filename.rbの修正です。

ActiveStorage::Filename#extnameメソッドを#extension_with_delimiterメソッドにリネームしています。


Make restart and dev:cache tasks work when customizing pid file path

railtiesの修正です。

pidファイルのパスを変更してrails serverを起動した場合に、restart及びdev:cacheタスクが正常に動作しないバグがあったのを修正しています。


DRY

Active Storageの修正です。

content_dispositionを指定するのに、service_urlメソッドに渡すまえにfilenameを指定する必要があったのを、service_urlメソッド内でfilenameの指定を行うよう修正しています。毎回filenameの指定をしないで良いようにする為に。また、引数の順番やインデントの調整等も合わせて行っています。


Fix syntax error

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

Service::S3Service#urlメソッドの引数に同じkeyがあったのを、片方削除しています。


Fix tests

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

先のcontent_dispositionの対応の影響でコケていたテストがあったのを修正しています。service_urlメソッドでfilenameを指定したことにより、一部処理の結果が変わってしまった為テストがコケてしまっていました。


Update regex

activestorage/test/service/azure_storage_service_test.rbの修正です。

Azure Storageを使用した場合のsigned URLの値を確認するテストで、実際の値と期待している値が異なっていたのを修正しています。


Update result of autoload_paths in Autoloading and Reloading Constants guide [ci skip]

rails guideのAutoloading and Reloading Constantsの修正です。

autoload_pathsの項にあるActiveSupport::Dependencies.autoload_pathsの実行結果の例が実際の結果と異なっていたのを修正しています。


Update Rails on Rack guide [ci skip]

rails guideのRails on Rackの修正です。

Inspecting Middleware Stackの項にあるbin/rails middlewareの実行結果の例が実際の結果と異なっていたのを修正しています。


Prevent extra SET time zone in configure_connection (#28413)

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

PostgreSQLAdapter#configure_connectionメソッドでtime zoneの設定処理が2回行われていたのを、一度だけ行われるよう修正しています。

元々はSET timezone TO 'value'SET time zone 'value' が別の意味だった(または、別の意味だと勘違いしていた)為、それぞれのSET処理が実行されいたのですが、現状左記SET処理は同じ意味の為、SET timezone TO 'value'の方だけ実行されるようにしています。


Update generator guide [ci skip]

rails guideのCreating and Customizing Rails Generators & Templatesの修正です。

generatorの実行結果の例が実際の結果と異なっていたのを修正、https://github.com/plataformatec/deviseへのリンクがgit://github.com/plataformatec/deviseになっていたのをhttps://github.com/plataformatec/devise.gitへ修正等を行っています。


Update Contributing to Ruby on Rails guide [ci skip]

rails guideのContributing to Ruby on Railsの修正です。

contributorの数について説明している箇所をhundreds of people have contributedからthousands of people have contributedに修正しています。


Fix link Contributing Ruby on Rails [ci skip]

rails guideのContributing to Ruby on Railsの修正です。

ページ内リンクを追加、rubyonrails-core mailing-listのURLが古いURLになっていたのを修正、その他外部ページへのリンクが誤っている箇所があったのの修正等を行っています。

rails commit log流し読み(2017/08/20)

2017/08/20分のコミットです。

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


Attributes are protected, not private, to avoid the warning

actioncable/lib/action_cable/remote_connections.rbの修正です。

ActionCable::RemoteConnections::RemoteConnectionクラスのserver変数の可視性をprivateからprotectedに変更しています。privateだとRuby 2.2系でwarning(private attribute?)が出てしまう為。


Update database config in The Rails Comamnd Line of guide [ci skip]

rails guideのThe Rails Command Lineの修正です。

Rails with Databases and SCMの項にあるconfig/database.ymlの内容が古いままになっていたのを修正しています。


Update The Rails Initialization Process of guide [ci skip]

rails guideのThe Rails Initialization Processの修正です。

config/boot.rbの項にあるRails applicationがデフォルトで使用するgemの一覧にactioncableactivestorageを追加、及び、guide内にある各コードを最新の内容に更新しています。


Register integer types limit correctly for postgresql adapter (#26386)

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

Postgresql adapterでinteger typesのlimitが正しく登録されていなかったのを、正しい値を登録するよう修正しています。


Update Debugging Rails Applications guide [ci skip]

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

Sending Messagesの項にあるcontroller action実行時のログの内容が古い内容だったのを更新しています。

rails commit log流し読み(2017/08/19)

2017/08/19分のコミットです。

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


Remove Active Storage code climate config file

activestorage/.codeclimate.ymlを削除しています。

ルートディレクトリに.codeclimate.ymlがあり、こちらのファイルは使用されていない為。


Add Yarn installation instructions for Active Storage

rails guideのDevelopment Dependencies Installの修正です。

Active Storage Setupの項を追加しています。Active Storageではyarnを使用しているので、yarnのインストール方法についての説明が記載されています。


Cleanup development_dependencies_install.md

rails guideのDevelopment Dependencies Installの修正です。

各項のグラマーの修正を行っています。


Use https instead of http or git in guide [ci skip]

rails guideのDevelopment Dependencies Installの修正です。

Git homepagePro Git へのリンクがhttpになっていたのを、まとめてhttpsに修正しています。


Use ssl in guide and comment [ci skip]

各guide、docの修正です。

GitHubへのリンクがhttpになっていた箇所をhttpsにまとめて修正しています。


Remove unused require

railties/lib/rails/test_unit/line_filtering.rbの修正です。

使用していないmethod_sourceのrequireを削除しています。


fix typo in ambiguous route definition error message

actionpack/lib/action_dispatch/routing/mapper.rbの修正です。

routingにroute pathと:pathオプションを両方指定した場合のエラーメッセージをタイポしていたのを修正しています。


Fix can't modify frozen String error in an AR test

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

test_log_invalid_encodingString#force_encodingを呼び出している箇所で、force_encodingを呼び出す前に元の値をdupするよう修正しています。 dupしないとcan't modify frozen Stringでエラーになってしまう為。


Fix doc format in Active Storage Setup [ci skip]

rails guideのDevelopment Dependencies Installの修正です。

Active Storage Setupの項、コードフォーマットを表示するのにバッククォートが一つ足りなかったのを追加しています。

rails commit log流し読み(2017/08/18)

2017/08/18分のコミットです。

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


Add missing test for Blob#purge

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

不足していたBlob#purgeメソッドについてのテストを追加しています。


Add note about JSON/JSONB serialization changes

rails guideのA Guide for Upgrading Ruby on Railsの修正です。

Upgrading from Rails 4.2 to Rails 5.0JSON/JSONBのserialize処理の変更内容についての説明を記載したChanges with JSON/JSONB serializationの項を追加しています。

4.2系までは値をStringで持っていた場合、それがHashに変換されるようになっていたのですが、5.0以降はStringのまま扱われるようになりました。これ自体は意図的な挙動なのですが、この挙動変更に関するissueが多くあった為、Upgrading Guideに説明を追加するようにしています。

詳細はPostgres JSONB column is returned as string instead of hash in Rails 5 RC2 辺りを参照。


Merge pull request #30275 from msimonborg/deep_merge_patch

activesupport/lib/active_support/core_ext/hash/deep_merge.rbの修正です。

Hash#deep_merge!のりファクリングを行っています。

keyの重複チェックを独自ロジックで行っていたのを、Ruby標準のHash#merge!にblockを渡す形で行うよう修正しています。


Add test cases for where.not with polymorphic association

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

where.notのpolymorphic associationを指定した場合のテストを追加しています。

元々は動作していなかったのですが、Refactor Active Record to let Arel manage bind paramsの対応の影響で動作するようになったので、テストだけを追加しています。


Restore to_sql to return only SQL (#29945)

Active Recordの修正です。

Refactor Active Record to let Arel manage bind paramsto_sqlのメソッドの挙動が変わった(sqlだけでなくbindsを返すようになった)のを、sqlだけを返すよう修正しています。

to_sqlはpublic APIなので、互換性の為。合わせてto_sql_and_bindsメソッドを追加し、bindsが必要な場合は左記メソッドを使用するようにしています。


Add test cases that class level destroy, delete, and update are affected by scoping (#29997)

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

class revelのdestroydelete、及び、updateメソッドが`scopingの影響を受ける事を確認するテストを追加しています。

現状は上記挙動が仕様の為、挙動が意図せず変わってしまうのを防ぐ為にテストを追加しています。


Restore the ability that SQL with binds for insert, update, and delete (#29944)

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

insertupdatedeleteメソッドの引数にbindsを追加しています。

Refactor Active Record to let Arel manage bind paramsの対応でbinds引数が削除されたのですが、上記メソッドはpublic APIの為、下位互換の為に引数を戻しています。


Add deterministic sorting order for test_taking_with_a_number

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

test_taking_with_a_numberでassociationを取得する際に、idでsortするよう修正しています。

sortしないと結果が不定になり、seedによってはテストが失敗してしまう為。


Improve migration/column_attributes_test.rb (#25286)

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

test_unabstracted_database_dependent_typesがPostgresSQLの場合も実行されるよう修正、及び、SQLite3 でchange_columnに元のカラムと異なるprecisionscaleを指定した場合のテストを追加しています。


Simplify ActiveModel::Errors#generate_message

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

ActiveModel::Errors#generate_messageメソッドのりファクリングとして、下記を行っています。

  • @base.class.respond_to?(:i18n_scope)を一度だけ呼ぶよう修正
  • @base.class.i18n_scopeが一度だけ呼ばれるよう修正
  • 不要なflatten!compactの呼び出しを削除

rails commit log流し読み(2017/08/17)

2017/08/17分のコミットです。

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


Add space

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

transactionメソッドのdoc内、Data Definition Language(DDL)Data Definition Language (DDL)に修正((の前にスペースを追加)しています。


Test with released thor

Gemfileの修正です。

thorのmasterブランチを使用していたのを、リリース済みのthorを使用するよう修正しています。thor 0.20.0がリリースされた為。

しかしよく見ると、blade gemの依存関係の都合上、まだ0.20.0は使われてないもよう。


Merge pull request #30260 from kamipo/remove_unused_action_arg

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

ControllerGenerator#generate_routing_codeメソッドから使用していないaction引数を削除しています。


Pass missing name attribute to execute_hook

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

ActiveSupport::LazyLoadHooks#on_loadメソッドに処理を一度だけ行いたい時ようのrun_onceオプションを追加した、Merge pull request #30045 from albertoalmagro/fix-raise-unpermitted-parameters-regression の対応で、LazyLoadHooks#execute_hookメソッドにname引数(hook名)を渡すのが漏れていたのを修正しています。ようは正しく動いて無かった。


Merge pull request #30048 from yahonda/regexp_aware_schema_dumper_prefix_suffix

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

table_name_prefixtable_name_suffixオプションに$マークが使用出来るよう修正しています。

MySQL 5.7、PostgreSQL 9.6ではtable名に$マークが使用出来る為。へー。

参考: MySQL :: MySQL 5.7 Reference Manual :: 9.2 Schema Object Names PostgreSQL: Documentation: 9.6: Lexical Structure


Use ActiveJob::Base.queue_adapter_name to get adapter name

activejob/test/support/integration/test_case_helpers.rbの修正です。

テストでadapter名を取得するのに独自ロジックで行っていたのを、ActiveJob::Base.queue_adapter_nameを使用するよう修正しています。


Bump thor and blade

Gemfile.lockの修正です。

blade及びthorのバージョンを更新しています。

Test with released thorの対応ではbladethorのバージョンロックが入っている為thorのバージョン更新が出来なかったのですが、thorのバージョンロックが解除されたbladeがリリースされた為、その最新のblade及び改めて最新のthorを使うようにしています。


Encrypt the IRC notification setting, so it’s not used on forks

.travis.ymlの修正です。

IRC notification settingを暗号化するようにしています。

     channels:
 -      - "irc.freenode.org#rails-contrib"
 +      # "irc.freenode.org#rails-contrib"
 +      - secure: "QFKSOK7xQiWWqTzYfYm0XWoW7idzuxT57MBW9i9EASyRLEPuDwZEubKRP40Y7wPx7ylQd9lp6kJheeLnrDvvTjFbW3sWv9GDRl4WlOU8sG/Kv7MXAASXlDqzyJxxXTtzLeXz2iwY296kOBuKxKxl923eTvEGeocwH02QGo14LpQ="

forkしたブランチで使用されないようにする為、との事です。


Temporarily point to a fork of SDoc

Gemfileの修正です。

forkしたsdoc gemを使用するよう修正しています。

テーマの改善、SEO用のタグの追加、検索結果から不要なHTMLタグを削除、等が行われており、それらを使用する為。

参考:


Move common tests from AppGeneratorTest and PluginGeneratorTest to SharedGeneratorTests

railtiesのテストの修正です。

AppGeneratorTestPluginGeneratorTest両方で行うテストについて、SharedGeneratorTests moduleに移動しています。


Use nil Logger for tests

activestorage/test/test_helper.rbの修正です。

テストで使うLoggerの出力先にnilを指定しています。不要なdebugログを表示しないようにする為。


Move test_index_is_created_for_both_timestamps to TimestampsWithoutTransactionTest

test_index_is_created_for_both_timestampsの修正です。

test_index_is_created_for_both_timestampsTimestampsWithoutTransactionTestクラス配下に移動しています。

元々はtransactionの中でテストが行われておりテスト終了後にロールバックされる事を期待していたようなのですが、テストの中でcreate_tableを行っており、MySQLOracleのようなトランザクション内でDDLを実行するとコミットが実行されるRDBMSでは、正しく値がロールバックされていませんでした。

テスト内で作ったテーブルはテストの後処理で削除しているので問題無かったのですが、テストの前処理で違うテーブルのupdated_atを強制的に更新しており、その値の変更が違うテストに影響を出してしまっていた為、影響を出さないよう、TimestampsWithoutTransactionTest配下に移動したようです。


Remove obsolete explanation

rails guideのActive Record Validationsの修正です。

Conditional Validationの項、:if:unlessオプションに渡せる値の一覧に、deprecatedになっていたStringが含まれていたのを削除しています。


Capitalize Redis

actioncable/lib/action_cable/subscription_adapter/redis.rbのdocの修正です。

redis -> Redisに修正しています。

rails commit log流し読み(2017/08/16)

2017/08/16分のコミットです。

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

railties/CHANGELOG.md


Don’t expose write_attribute_without_type_cast

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

AttributeMethods::Dirty#write_attribute_without_type_castの可視性をpublicからprivateに変更しています。

オーバーロード元であるAttributeMethods::Write#write_attribute_without_type_castメソッドはprivateになっており、元の可視性を維持する為。


Add system_test logs to guide [ci skip]

rails guideのGetting Started with EnginesCreating and Customizing Rails Generators & Templatesの修正です。

scaffold generatorの実行例に、system testの実行例が含まれていない箇所があったのを修正しています。


minor tweaks in Active Storage after a walkthrough

Active Storage の修正です。

各docのフォーマット、グラマーの修正。及び不要な改行の削除等を行っています。

が、不要と思われた改行は意図的だった為、後ほど再度修正しています。


Merge pull request #30261 from bogdanvlviv/improve-guides-plugins

rails guideのThe Basics of Creating Rails Pluginsの修正です。

exampleコードのフォーマットの整理及び使用するメソッドの改善、その他リンクの修正等ガイド全体の見直しを行っています。


Add –skip-yarn option to the plugin generator

railties/lib/rails/generators/rails/plugin/plugin_generator.rbrailties/lib/rails/generators/rails/plugin/templates/gitignoreの修正です。

plugin generatorに--skip-yarnオプションを指定出来るよう修正しています。


Merge pull request #30271 from kamipo/through_scope_should_not_be_affected_by_scoping

Active Recordの修正です。

scopingで本来参照されないべきのhas_many through先のscopeが参照されてしまうバグがあったのを修正しています。


restores some double newlines deleted in ae87217

Active Storageの修正です。

minor tweaks in Active Storage after a walkthrough で誤って削除してしまった改行を戻しています。メソッド群の区切りの為に改行を2つ意図的に入れているとの事です。


Merge pull request #30045 from albertoalmagro/fix-raise-unpermitted-parameters-regression

actionpack/lib/action_controller/railtie.rbactivesupport/lib/active_support/lazy_load_hooks.rbの修正です。

ActiveSupport::LazyLoadHooks#on_loadメソッドに、処理を一度だけ行いたい時ようのrun_onceオプションを追加しています。

ActiveSupport.on_load(:action_controller, run_once: true) do
...
end

上記のように指定した場合、on_load hookが複数回呼ばれても、ブロックは一度だけしか実行されないようになります。

合わせて、action_controlleron_load hookにrun_onceオプションを指定するよう修正しています。


Add test case to make sure Parameters configuration are executed once

railties/test/application/configuration_test.rbの修正です。

ActionController::APIのload処理が呼ばれるよう各テストに処理を追加しています。

ActionController::BaseActionController::APIそれぞれのload処理が呼ばれた際に、on_loadブロックが一度しか呼ばれない事(先のコミットでrun_onceオプションを指定している為)を確認する為。


Fix test “_before_type_cast” for enum (#29004)

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

_before_type_castメソッドについてのテストに、enumの値を指定した前後の状態でのテストを追加しています。

Refactor enum to be defined in terms of the attributes API_before_type_castの挙動が変更されており、その変更内容を確認する為にテストも変更しています。


Fix RuboCop offenses

EnforcedStyle: context_dependent copを使用するよう.rubocop.ymlを修正、及び、各ファイルに先copを適応しています。


Change namespace of Active Storage rake task

activestorage/lib/tasks/activestorage.rakeの修正です。

Active Storageのrake taskのnamespaceをactivestorageからactive_storageに修正しています。

Active Storageのmigrationをインストールするrake taskのnamespaceがactive_storageになっており、それと合わせる為。


Remove period from within links

rails guideのRuby on Rails Security Guideの修正です。

Additional Resourcesの項、リンクの中にピリオドが含まれていたのを、ピリオドはリンクの外(aタグの外)に入れるよう修正しています。


Change to plural

rails guideのA Guide for Upgrading Ruby on Railsの修正です。

ActionView::Helpers::RecordTagHelperについて説明している箇所のグラマーの修正を行っています。


Small grammar fixes

rails guideのActive Record Callbacksの修正です。

Transaction Callbacksの項のグラマーの修正を行っています。

rails commit log流し読み(2017/08/15)

2017/08/15分のコミットです。

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

railties/CHANGELOG.md

activerecord/CHANGELOG.md


Railties updates for frozen string literals.

railtiesの修正です。

frozen_string_literalを指定した場合にエラーにならないよう、Stringを変更する箇所でdupを呼び出す等修正しています。


Adding frozen_string_literal pragma to Railties.

railtiesの修正です。

各ファイルの先頭にfrozen_string_literal: trueを指定するよう修正しています。


Run Active Storage service tests in CI

.travis.ymlの修正です。

Active Storageのserive testがCIで実行されるよう、AWS, GCP及びAzureアカウントの情報をCIで使えるよう設定を行っています。


Add frozen string pragma to expected routes files.

railties/test/generators/actions_test.rbの修正です。

テスト内で使う為のroutesにfrozen_string_literal: trueを指定するよう修正しています。


Allow for frozen string pragma in generated files.

railties/test/isolation/abstract_unit.rbの修正です。

frozen_string_literal: trueを指定する事により、テスト用データを追加する行数がずれてしまった箇所があったのを修正しています。


Merge pull request #29994 from y-yagi/fix_test_runner_help

railtiesの修正です。

test runnerのhelpにminitest、及び、その他pluginのオプションが表示されなくなってしまっていたのを、再度表示されるよう修正しています。


Merge pull request #30206 from yukihirop/improve_activerecord_rdoc

activerecord/RUNNING_UNIT_TESTS.rdocの修正です。

テスト対象のadapterを指定 + テストを一つだけ実行する場合の実行方法を追加しています。


Merge pull request #30241 from yhirano55/optimize_routes_indentation

railtiesの修正です。

generatorで生成するroutesファイルのインデントがずれる場合があったのを調整、及び、namespace + 複数アクションをgeneratorに指定した場合、namespaceが別々に定義されてしまっていたのを一つにマージするよう修正しています。

bin/rails g controller foo/bar/baz index show

上記コマンドを実行した場合に、

# config/routes.rb
namespace :foo do
  namespace :bar do
    get 'baz/index'
    get 'baz/show'
  end
end

というようにroutesが生成されるよう修正しています。


Merge pull request #30239 from bogdanvlviv/improve-plugin_generator_code

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

plugin generatorに渡すオプションの一覧にapiオプションを渡すよう修正、及び、不要なforceオプションは渡さないよう修正しています。


Merge pull request #30235 from bogdanvlviv/omit-additional-removing-cable_yml

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

不要なconfig/cable.ymlの削除処理を削除しています。skip_action_cableオプションを指定した場合、そもそも左記ファイルは作成されない為。


Merge pull request #30233 from kamipo/remove_duplicated_join_id_for

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

BelongsToReflection#join_id_for及びThroughReflection#join_id_forメソッドを削除しています。親クラスのjoin_id_forメソッドを使用すれば良い為。


Merge pull request #30244 from yhirano55/refactor_max_age_seconds

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

Cache-Controlmax-ageの指定例から、不要なsecondsの呼び出しを削除しています。

-      'Cache-Control' => "public, max-age=#{2.days.seconds.to_i}"
+      'Cache-Control' => "public, max-age=#{2.days.to_i}"

Durationクラスのto_iは必ず秒の値を返す為。


Merge pull request #30231 from kamipo/remove_unused_source_type_info

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

使用していないRuntimeReflection#source_type_infoメソッドを削除しています。


Move test to its proper place

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

activestorage/test/filename_test.rbactivestorage/test/models/filename_test.rbに移動しています。ActiveStorage::Filenameはmodelの為。


Fix asset pipeline guide [skip ci]

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

Rails.application.config.assets.pathsを指定するexampleがconfig/application.rbに指定するよになっていたのを、現行のコードと同じように、config/initializers/assets.rbに指定するよう修正しています。


Fix guide about command_line [ci skip]

rails guideのThe Rails Command Lineの修正です。

bin/rails generateコマンドのexampleに不足していたchannelを追加、及び、scaffoldのexampleに不足していたsystem testのファイル生成例を追加しています。


Merge pull request #30236 from padi/find-each-example-update

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

ActiveRecord::Batches.find_eachメソッドのdocのexampleにfinishオプションを指定した場合のexampleを追加しています。


Merge pull request #30214 from kirs/uniqueness-scope-validator

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

validates_uniqueness_ofscopeオプションに不正な値(Symbol又はSymbolのArray以外の値)を指定した場合に、ArgumentErrorをraiseするよう修正しています。


Merge pull request #30229 from kamipo/allow_serialize_with_custom_coder

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

json及びarrayカラムをserializeする際に、任意のcoderを使用出来るよう修正しています。

hstoreカラムでは任意のcoderを使用出来るよになっており、それに合わせる為対応したようです。


Merge pull request #27609 from kamipo/fix_association_primary_key

activerecord/lib/active_record/associations/collection_association.rbactiverecord/lib/active_record/reflection.rbの修正です。

has_many associationにprimary_keyオプションを指定している場合に、collection_singular_idsメソッドがエラーになってしまう(primary_keyオプションで指定した値を正しく扱っていない)バグがあったのを修正しています。


Merge pull request #30208 from kamipo/extract_primary_key_to_abstract_reflection

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

AssociationReflectionクラス、HasManyReflectionクラスそれぞれで同じ内容のprimary_keyメソッドを定義していたのを、親クラスのAbstractReflectionでメソッドを定義し、子クラスからはメソッドを削除するよう修正しています。


Merge pull request #30219 from yhirano55/fix_app_generator_api_options

railtiesの修正です。

rails new--apiオプションを指定した場合のテストのリファクタとして、重複していたテストを削除、テスト対象のファイル名をタイポしていたのを修正等を行っています。


Merge pull request #30073 from yalab/fixture_binary_helper

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

binaryファイルを読み込む為のbinaryメソッドをfixtureで使用出来るよう修正しています。

実装は下記のような感じ。

def binary(path)
  %(!!binary "#{Base64.strict_encode64(File.read(path))}")
end

Merge pull request #30215 from untidy-hair/clarify-abstract-or-not-in-tests

activerecord/test/cases/associations/join_model_test.rbactiverecord/test/cases/inheritance_test.rbの修正です。

STIを使用しているabstractクラスの子クラスのクラスが正しく動作する事を確認するテストを追加しています。


Merge pull request #30169 from awortham/awortham/awortham/fix-sql-distinct-bug

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

has_many :through associationに対して、distinctを指定したsumメソッドが正しく動作しないバグがあったのを修正しています。


Fix format of generator docs [ci skip]

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

Generators::Actions#libメソッドのdoc内のlibディレクトリをタイプライター体で表示されるようttタグを追加しています


Formatting CHANGELOGs [ci skip]

activerecord/CHANGELOG.mdrailties/CHANGELOG.mdの修正です。

各エントリーのフォーマットの修正を行っています。


Fix typo for api_app_generator_test

railties/test/generators/api_app_generator_test.rbの修正です。

test_api_modified_filesassetsassertsにタイポしていたのを修正しています。