なるようになるブログ

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

rails commit log流し読み(2018/05/21)

2018/05/21分のコミットです。

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


SqlTypeMetadata is :nodoc: class [ci skip]

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

内部向けのクラスであるPostgreSQLTypeMetadataAPI docに表示されないよう修正しています。


Bump minimum SQLite version to 3.8

Active Recordの修正です。

サポートするSQLiteのバージョンを3.8以上に修正しています。

macOS 10.10やUbuntu 14.04ではSQLite 3.8がデフォルトでインストールされていること、また、3.8以上をサポートする事でmulti insertが使用出来るか等の幾つかの機能のチェック処理を削除出来ることから、サポートバージョンを修正しています。


Enable Lint/StringConversionInInterpolation rubocop rule

Lint/StringConversionInInterpolation copを有効にして、各ファイルにcopを適用しています。


Exception wording change

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

polymorphic associationに対してreflection.klassを取得しようとした場合に表示するエラーメッセージのグラマーを修正しています。

rails commit log流し読み(2018/05/20)

2018/05/20分のコミットです。

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


Add test case that configure config.action_view.finalize_compiled_template_methods

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

ActionView::Template.finalize_compiled_template_methodsがconfig経由で指定出来ることを確認するテストを追加しています。

rails commit log流し読み(2018/05/19)

2018/05/19分のコミットです。

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


Raise a better exception when a invalid depreation behavior is set

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

ActiveSupport::Deprecation.behaviorに不正な値を指定した場合に、ArgumentErrorをraiseして適切なエラーメッセージを表示するよう修正しています。


Merge pull request #32900 from ttanimichi/app-update-skip-yarn

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

app:updateタスクで、bin/yarnが存在しない場合にyarnに関連するコンテンツを生成しないよう修正しています。


Finalize transaction record state after real transaction

activerecord/lib/active_record/connection_adapters/abstract/transaction.rbactiverecord/lib/active_record/transactions.rbの修正です。

実際のtransactionが完了してから、recordのtransaction stateを確定するよう修正しています。

元の実装だとtransactionがrollbackしたのに、recordが作成済み(new_record?が誤った値を返す)と判断されてしまうバグがあった為。


Rollback correctly restore initial record id after double save

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

transactionの中でsaveを複数回実行した場合に、rollback時にidが元の値に戻らないバグがあったのを修正しています。

rails commit log流し読み(2018/05/18)

2018/05/18分のコミットです。

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

activestorage/CHANGELOG.md


Merge pull request #32908 from anniecodes/fix-time-random-string

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

time型のattributeに不正なStringを指定した場合に、値に2000-01-01 00:00:00が設定されてしまっていたのを、nilが設定されるよう修正しています。

# before
user = User.new
user.time_of_birth = "ABC"
user.time_of_birth # => Sat, 01 Jan 2000 00:00:00 UTC +00:00

# after
user = User.new
user.time_of_birth = "ABC"
user.time_of_birth # => nil

Generate getter and setter methods in mixin

activestorage/lib/active_storage/attached/macros.rbの修正です。

attachmentに対するgetter / setterメソッドを定義する際に、generated_association_methodsメソッドで生成されたmoduleに対してメソッドを定義するよう修正しています。

メソッドを定義するclassでメソッドをオーバーライド出来るようにするため。

例えば、Userに対してavatarというattachmentがあった場合、

User.class_eval do
  def avatar
    super.filename.to_s.reverse
  end
end

上記のようにすると、Userに定義されたavatarメソッドが呼ばれるようになります。


Fix markdown [ci skip]

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

コードを挿入する際のバッククオートの数が多かった(三つではなく四つあった)のを修正しています。


Permit opening a blob in a custom tempdir

Active Storageの修正です。

blobをopenする際のtempdirをメソッドの引数で指定出来るよう修正しています。


Fix documentation for ActionController::Params#fetch

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

ActionController::Params#fetchメソッドのdocに、指定されたkeyが見つからなかった場合、第二引数に指定された値がそのまま返ってくる旨説明されていました。

が、実際は、そのままではなく、ActionController::Parametersに変換された値が返ってくるケースがあったため、その旨説明を修正しています。

rails commit log流し読み(2018/05/17)

2018/05/17分のコミットです。

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

activestorage/CHANGELOG.md


Add ActiveStorage::Blob#open

Active Storageの修正です。

ActiveStorage::Blob#openメソッドを追加しています。

openメソッドはblobをディスクに一時ファイルとして保存し、そのファイルに対して処理を実行出来るようになっています。

例。

message.video.open do |file|
  system '/path/to/virus/scanner', file.path
  # ...
end

合わせて、元々上記のような用途で使う想定だったActiveStorage::Downloading moduleをdeprecateにしています。


Demonstrate ActiveStorage::Blob#open in the Active Storage guide

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

guideにActiveStorage::Blob#openを使った場合のexampleを追加しています。


Add missing block parameters

activestorage/lib/active_storage/analyzer.rbactivestorage/lib/active_storage/previewer.rbの修正です。

メソッドの引数指定に誤りがあった箇所があったのを修正しています。


Add ActiveStorage::Previewer#tempdir

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

ActiveStorage::Previewertempdirメソッドを追加しています。元々はActiveStorage::Downloadingtempdirメソッドを使うようになっていたのですが、ActiveStorage::Downloadingがdeprecateになったため、独自にメソッドを定義するようにしています。


Remove unused require "active_support/core_ext/string/filters"

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

使用していないactive_support/core_ext/string/filtersのrequireを削除しています。


Active storage: Image variant options not correct

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

ctiveStorage::Variant classのdoc内、画像変換に指定するオプションに誤りがあったのを修正しています。


Fix formatting of author credit [ci skip]

activestorage/CHANGELOG.mdの修正です。

ActiveStorage::Blob#openメソッドを追加した対応のエントリーの、author部分のフォーマットを修正しています。

rails commit log流し読み(2018/05/16)

2018/05/16分のコミットです。

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


Don't expose SingularAssociation#replace which is internal API

Active Recordの修正です。

内部向けAPIであるSingularAssociation#replaceの可視性をpublicからprivateに変更しています。

rails commit log流し読み(2018/05/15)

2018/05/15分のコミットです。

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


Add math tests

activerecord/test/cases/arel/attributes/math_test.rbactiverecord/test/cases/arel/nodes/count_test.rbの修正です。

math operatorについてのテストを追加しています。


Remove :nodoc: from the methods which is added the doc [ci skip]

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

foreign_key、及び、foreign_key_exists?メソッドから:nodoc:を削除しています。これらのメソッドは既にdocがあるため。