なるようになるブログ

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

rails commit log流し読み(2014/12/05)

2014/12/05分のコミットです。

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

activerecord/CHANGELOG.md


Copy-edit the MessageVerifier documentation [ci skip]

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

メソッドの実行結果の箇所にスペースを追加しています。 見た目の整理ですね。


Add documentation to six AS::TimeWithZone methods

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

TimeWithZoneクラスの各メソッドにdocを追加しています。


Fix MessageVerifier's #verified in CHANGELOG

activesupport/CHANGELOG.mdの修正です。

Prefer object/nil over true/falseActiveSupport::MessageVerifier#verifiedメソッドの戻り値が変更になったので、その内容に合わせてCHANGELOGの説明を修正しています。


Merge pull request #17792 from rockrep/master

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

cookiesのdomainオプションにStringのallを指定出来るよう修正しています。元々、Symbolの:allは指定出来ていたのですが、Stringは出来ていなかったので、対応したようです。


We don't need to call to_sym. Just compare the string

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

上記domainの対応で、不要なto_symメソッド呼び出しがあったので、削除しています。


Deprecate Class handler in PredicateBuilder

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

Active Recordのqueryにclassを値として渡すのはdeprecateになりました。

Todo.where(name: Todo)
# DEPRECATION WARNING: Passing a class as a value in an Active Record query is deprecated and will be removed. Pass a string instead.

こんな書き方出来たんですねえ。知らなかった。


Merge pull request #17825 from aripollak/fix-activejob-sidekiq-integration

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

Sidekiq ActiveJob integration テストのセットアップ処理を修正しています。

-      Sidekiq.redis(&:connect)
+      Sidekiq.redis(&:info)
+      Sidekiq.logger = nil

connectメソッドを呼び出すのはそもそも誤りで、loggerについてはエラーが出るのを防ぐためにreset処理が必要な為、との事です。


Merge pull request #17797 from y-yagi/donot_delete_mailer_layouts

actionmailer/lib/rails/generators/mailer/mailer_generator.rbrailties/lib/rails/generators/erb/mailer/mailer_generator.rbの修正です。

Rails 4.2から、mailerをgenerateする際にレイアウトファイルを生成するようになったのですが、 mailerをdestroyする際に、そのレイアウトファイルを削除するようになっていたのを、削除しないよう修正しています。

レイアウトファイルは共通で使うものなので、削除するのは不味いだろうと思い、対応しています。


Remove environment dependency for db:schema:load

activerecord/lib/active_record/railties/databases.rakeの修正です。

db:schema:loadタスクがenvironmentに依存していたのを修正しています。

octopusでエラーになっていた為対応したとの事です。


Remove deprecated behavior allowing nested arrays as query values

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

deprecateになっていた、Active Recordのfinder methodsにネストした配列が渡された時の振る舞いが削除されました。

以下のような書き方が出来なくなっています。

Comment.where(id: [[1..2], 3, [5], 6..8, 9])

Use try instead of checking for GlobalID::Identification

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

global_id_or_inspectedメソッド内で、引数がGlobalID::Identificationかどうかチェックいていた処理を、 tryを使用する形でリファクタリングしています。

-          if argument.is_a?(GlobalID::Identification)
-            argument.to_global_id.to_s
-          else
-            argument.inspect
-          end
+          argument.try(:to_global_id).try(:to_s) || argument.inspect

Inline to_global_id conversion

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

先に修正したglobal_id_or_inspectedメソッドですが、一ヶ所でしか使用していなかった為か、呼び出し元のインラインで行うよう修正しています。

メソッドに切り出してあった方が、見やすそうなんですけどねえ。


Typo: Hello = Guten Tag (in German)

actionpack/test/controller/localized_templates_test.rbの修正です。

"Gutten" -> "Guten"に修正しています。


Merge pull request #17817 from aripollak/hide-activejob-args

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

ActiveJobのロギングでは、引数がGlobalIDの場合、中身をinspectして全てログに表示していたのですが、ユーザデータ等を渡した時の事を考慮すると、 セキュリティ上良くないだろう、という事でGlobalIDの場合は、GlobalIDをStringに変換した情報("gid://aj/Person/123"みたいな情報)を出力するように修正しています。


remove unused #generalized_table

actionpack/lib/action_dispatch/journey/nfa/transition_table.rbの修正です。

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


remove unused #optional_parts

actionpack/lib/action_dispatch/journey/route.rbの修正です。

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


Include missing require

activejob/test/cases/logging_test.rbの修正です。

テスト用のmodelファイルのrequireが不足していたので、追加しています。