なるようになるブログ

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

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

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

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

activerecord/CHANGELOG.md


document that .delete does work on #readonly? records. Closes #11860

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

deleteメソッドではreadonly?のチェックは行わない旨説明を追加しています。

deleteは直にSQL発行してしまう為、チェックされないんですよねえ。delete_allも同様。


Failure to rollback t.timestamps when within a change_table migration

ActiveRecordの修正です。

以下の用なマイグレーションを実行した場合に、rollback時にエラーになっていたのを対応しています。

change_table(:table_name) { |t| t/timestamps }

#  wrong number of arguments (2 for 1) .... /connection_adapters/abstract/schema_statements.rb:851:in `remove_timestamps'

add_timestampsは引数を受け取るの対して、remove_timestampsは引数をを受け取らないので、エラーになってしまったようです。remove_timestampsの方に第二引数を受け取るよう対応しています。


Move PredicateBuilder instantiation to constructor

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

PredicateBuilderの生成処理をRelationコンストラクタに移動しています。

スレッドセーフにする為の対応のようです。 ||= がrace conditionになってしまう為との事。なるほど。


docs, add new changelog entries at the top :sweat: [ci skip] #17651

activerecord/CHANGELOG.mdの修正です。

先のremove_timestampsの対応をCHANGELOGの先頭に移動しています。


Active Record changelog needs to keep pointing at 4-2-stable. #17651

activerecord/CHANGELOG.mdの修正です。

4-1-stable4-2-stableへのリンクに修正しています。


Merge pull request #17891 from prathamesh-sonpatki/remove-mocha-from-info-controller-tests railties/test/rails_info_controller_test.rbの修正です。

mochaを使用していた箇所を修正、'mocha/setup'をrequireしていたのを削除しています。

元々、"FIXME: stop using mocha"とコメントにあったので、rails内部でmochaを使うのを止める方針のようですねえ。


Clarify that batching methods can be used with any orderable type primary key, not just integer ones, as per @a58cafeb3a86be46849de57481b6644094fb8165

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

find_eachメソッドのdocに引数はIntegerでない旨説明があったのですが、実際はStringでも問題無いので、docを修正しています。


Prevent Symbol GC

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

Symbol countをチェックするテストがruby-headブランチで失敗していたらしく、恐らく Symbol GCが理由だろという事で、 該当のテストではGC.disableするよう修正しています。


Add documentation to MessageVerifier

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

MessageVerifier#valid_message?MessageVerifier#verifiedMessageVerifier#verifyMessageVerifier#generateメソッドについてのdocを追加しています。

大分判りやすくなって助かります。


Remove "rescue" clause around "require 'openssl'"

actionpack/test/dispatch/cookies_test.rbactivesupport/test/message_encryptor_test.rb activesupport/test/message_verifier_test.rbの修正です

opensslのrequire処理を修正しています。

-begin
-  require 'openssl'
-  OpenSSL::PKCS5
-rescue LoadError, NameError
-  $stderr.puts "Skipping KeyGenerator test: broken OpenSSL install"
-else

+require 'openssl'

元々、JRubyjruby-opensslをbundleしていなかった為、ワークアラウンドとして追加していたようなのですが、 JRuby 1.7.13からjruby-opensslがbundleされるようになったので、ワークアラウンドを削除しています。


docs, bring back ActiveRecord::Core methods in the API. [ci skip]

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

maintain_test_schemaの前に記載されていた、:nodoc:を削除しています。

-      # :nodoc:
       mattr_accessor :maintain_test_schema, instance_accessor: false

maintain_test_schemaにだけnodocが設定される事を期待していたようなのですが、実際は、nodoc以下全ての行に影響が出てしまっていたらしく、一旦削除したようです。


remove misleading class [ci skip]

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

Follow the Coding Conventionsの項で、メソッド名の書き方について説明している箇所で、説明上不要なクラス名を削除しています。


remove unused #await_close

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

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