なるようになるブログ

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

rails commit log流し読み(2019/01/05)

2019/01/05分のコミットです。

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

railties/CHANGELOG.md

activemodel/CHANGELOG.md

actiontext/CHANGELOG.md


Clarify benefit of delegate_missing_to

activesupport/lib/active_support/core_ext/module/delegation.rbのdocの修正です。

delegate_missing_toメソッドのdoc内にあるexampleコードから、メソッド呼び出し時の明示的なreceiverの指定を削除しています。元のコードだとdelegate_missing_toのexampleコードだと不適切(method_missingが起きない)な為。


Send Active Storage jobs to dedicated queues by default

railties/lib/rails/application/configuration.rbrailties/lib/rails/generators/rails/app/templates/config/initializers/new_framework_defaults_6_0.rb.ttの修正です。

Active Storageで使用するActive Jobのqueueをjob毎に指定出来るよう対応した、Permit sending Active Storage purge and analysis jobs to separate queuesの続きとして、load_defaults内でjob毎のqueue名を指定する(analysis jobはactive_storage_analysis、purge jobはactive_storage_purge)よう修正しています。


Add ActiveModel::Errors#of_kind?

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

特定のattributeに関するエラーがあるかどうかをチェックする為のActiveModel::Errors#of_kind?メソッドを追加しています。

ActiveModel::Errors#added?メソッドとの違いはoptionsについてチェックするかどうかで、of_kind?optionsについてはチェックしないようになっています。


Test Action Mailbox configurations

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

Action Mailboxのconfigについてのテストを追加しています。


Fix new_framework_defaults_6_0.rb file

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

一項目だけconfigの値がコメントアウトされていなかったのを、他の値と合わせてデフォルトではコメントアウトするよう修正しています。


Clarify delegate_missing_to [ci skip]

activesupport/lib/active_support/core_ext/module/delegation.rbのdocの修正です。

delegate_missing_toメソッドのdoc内にあるexampleコード、メソッド呼び出し時の明示的なreceiverの指定が残っていた箇所があったのを削除しています。


Support in-flight jobs stored before individual execution counters for retry_on (#34731)

activejob/lib/active_job/exceptions.rbの修正です。

retry_onメソッドでexception_executions(exception毎のretry回数を保持する変数)が定義されていない場合に、Hash.new(0)で初期化するよう修正しています。

exception毎のretry回数を保持する対応は、Keep executions for each specific exceptionで導入されたのですが、この対応を入れる前にenqueueされたjobはexception_executionsを保持しておらず、値を追加しようとするとエラーになってしまう為。


Import Action Text

リッチテキストの編集・表示を行う為のAction TextコンポーネントRails本体にインポートしています。

現状、リッチテキストライブラリはhttps://trix-editor.org/のみサポートしています。ファイルのアップロードもサポートしており、アップロードされたファイルはActive Storageを使用して管理されるようになっています。

rails action_text:installでAction Textで使用するテーブル、css、添付ファイルを表示するようのviewファイル等が生成されます。Action Textで生成するデータは専用のテーブル(action_text_rich_texts)で保持されるようになっており、リッチテキストを保持する為のカラムを別途追加する必要がありません。

後は、リッチテキストを使用したいmodel及びviewでリッチテキストテキスト用のメソッドを定義すれば使用出来るようなります。

class Message < ApplicationRecord
  has_rich_text :content
end
<%= form_with(model: message) do |form| %>
  …
  <div class="field">
    <%= form.label :content %>
    <%= form.rich_text_area :content %>
  </div>
  …
<% end %>

Label Action Text PRs [ci skip]

.github/autolabeler.ymlの修正です。

autolabelerにAction Text用の設定を追加しています。


Generate Action Text's API docs

actiontext/app/models/action_text/rich_text.rbrailties/lib/rails/api/task.rbの修正です。

Action TextのdocがAPI docに表示されるよう対応しています。


Fix API docs of ActionText::RichText [ci skip]

actiontext/app/models/action_text/rich_text.rbのdocの修正です。

ActionText::RichText classのdocがAPI docに表示されていなかったのを、表示されるよう修正しています。


Remove comment from actiontext/actiontext.gemspec

actiontext/actiontext.gemspecの修正です。

デフォルトで生成されるコメント(Describe your gem and declare its dependencies)を削除しています。


Add action_text_content hook to the guide [ci skip]

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

Available Hooksの項にあるhookの一覧を記載している箇所に、Action Textのhookを追加しています。


Add Action Text to guides [ci skip]

Action Textについて説明したAction Text Overview guideを追加しています。中身はREADME.mdから移動しています。


Add --skip-action-text option to rails new

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

rails newにAction Textのrequireをskipする為の--skip-action-textオプションを追加しています。


Test actiontext on Rails 6.0

Action Textのテストの修正です。

テストで使用するアプリケーションをRails 6.0に更新しています。


Merge pull request #34709 from gmcgibbon/action_cable_guides_es6

rails guideのAction Cable Overviewの修正です。

Action Cableのexampleコードがcoffee scriptで記載されいたのを、ES6で記載するよう修正しています。