なるようになるブログ

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

rails commit log流し読み(2023/01/10)

2023/01/10分のコミットです。

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

railties/CHANGELOG.md

activerecord/CHANGELOG.md


Change dockerfile from using Node 19 to match dev environment (#46794)

railtiesの修正です。

rails newで新規にアプリケーション作成時に.node-versionファイルを生成するよう修正しています。合わせて、Dockerfileでは、この.node-versionに記載されたバージョンのNode.jsがインストールされるよう修正しています。


Run test:prepare before bin/rails test commands (#46664)

railtiesの修正です。

rails testコマンド実行時にtest:prepare taskを実行するよう修正しています。なお、ファイル名を指定して実行する場合(e.g. bin/rails test/models/some_test.rb)は実行されないようになっています。


omit assets:precompile in Dockerfile for api only apps (#46938)

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

api only appsではassets:precompileがDockerfileで実行されないよう修正しています。


Merge pull request #46916 from ioquatix/actionpack-direct-set_response

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

controllerでRack::Responseを直接指定する為のresponse=メソッドを追加しています。

class MyController < ActionController::Base
  def streaming_csv
    body = proc new do |stream|
      csv = CSV.new(stream)
      # generate csv output
    end

    self.response = [200, {'content-type' => 'text/csv'}, body]
  end
end

Use #except! in HashWithIndifferentAccess#except

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

HashWithIndifferentAccess#exceptメソッドで#except!メソッドを使用するよう修正しています。オブジェクトの生成数を減らす為。


Fix schema cache dumping of virtual columns

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

PostgreSQLのvirtual columnsはschema cacheに正しく出力されないバグがあったのを修正しています。


Match arity of Hash#default in HWIA#default

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

HashWithIndifferentAccess#defaultの引数の指定がHash#defaultの引数の指定と一致するよう修正しています。


Use map! in HashWithIndifferentAccess#values_at

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

HashWithIndifferentAccess#values_atメソッドでオブジェクト生成数を減らすよう修正しています。


Use map! in HashWithIndifferentAccess#fetch_values

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

HashWithIndifferentAccess#fetch_valuesメソッドでオブジェクト生成数を減らすよう修正しています。


Make Active Storage setup instructions less scary

rails guideのActive Storage Overviewの修正です。

Setupの項の言い回しを修正しています。


Merge pull request #46894 from avispatech/enable-extensions-schema

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

enable_extensionメソッドのextension名にschemaを指定出来る(e.g. enable_extension('heroku_ext.hstore'))よう修正しています。


Add a default health controller (#46936)

railtiesの修正です。

rails newで新規にアプリケーションを作成した際に、アプリケーションが動作しているかどうかをチェックする為のヘルスチェック用の処理を追加する用修正しています。ヘルスチェック用のcontrollerはrails内部で保持されているので、routesに追加すれば既存のアプリケーションでも使用出来るようになっています。なお、ヘルスチェック用の処理は単純にHTMLをrenderするだけの処理になっています。


TaggedLogging accepts non-String objects

activesupport/lib/active_support/tagged_logging.rbの修正です。Reuse the String object created via tags_text()の影響でTaggedLoggingのmsgにString以外のオブジェクトを指定するとエラーになるようになっていたのを、再度指定出来るよう修正しています。


Do not drop schema migrations and internal metadata tables in test/cases/tasks/database_tasks_test.rb

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

テスト実行時に他のテストでも使用しているtableのdropを行わないよう修正しています。


Dockerfile binfile fixups; primarily for Windows users (#46944)

railties/lib/rails/generators/app_base.rbrailties/lib/rails/generators/rails/app/templates/Dockerfile.ttの修正です。

path等が正しく生成されてなかった為、Windows環境で生成されたDockerfileのbinstubを実行するとエラーになってしまっていたのを、正しく動作するよう修正しています。