2016/10/21分のコミットです。
CHANGELOGにのったコミットは以下の通りです。
Use old typecasting method if no type casted binds are passed in
activerecord/lib/active_record/log_subscriber.rb
の修正です。
ActiveSupport::Notifications
でsql.active_record
eventのログを出力する際、bindが使用されたcached queryのログを出力する際にエラーになっていたのを修正しています。
cached queryの場合、ActiveRecord::LogSubscriber#sql
の引数にbinds
のみ設定されており、type_casted_binds
が設定されてなかった為、type_casted_binds
を展開してログを生成する際にエラーになってしました。type_casted_binds
が渡されなかった場合、ActiveRecord::LogSubscriber
の中でtype_casted_binds
を生成するようにして対応しています。
[ci skip] Fix return values of Hash Extensions examples
rails guideのActive Support Core Extensions
の修正です。
Hash#transform_keys
、Hash#stringify_keys
、Hash#symbolize_keys
のexampleで、exampleコードの戻り値が実際の戻り値と異なっていたのを修正しています。
remove trailing whitespace [ci skip]
rails guideのActive Record Migrations
の修正です。
行末尾の不要な空白を削除しています。
guides, include note about modifiers when using the CLI.
rails guideのActive Record Migrations
の修正です。
Column Modifiers
の項に、null
とdefault
はコマンドラインからは指定出来ない旨注記を追加しています。
doc, hide non-public methods form the api docs. [ci skip]
activesupport/lib/active_support/core_ext/module/attribute_accessors_per_thread.rb
のdocの修正です。
Module#thread_mattr_reader
、Module#thread_mattr_writer
に:nodoc:
を設定し、API docに表示されないようにしています。
reader / writerだけを使う事は無いはずで、かつ、そのような使い方は許容しない為、のようです。Module#thread_mattr_accessor
は引き続き使用出来ます。
Merge pull request #26839 from renuo/fix-missing-nsec-transfer
activesupport/lib/active_support/core_ext/date_and_time/calculations.rb
の修正です。
DateAndTime::Calculations#copy_time_to
メソッドで値をコピーする際に、usec
を使用していたのをnsec
を使用するよう修正しています。 ナノ秒まで値がコピーされるようにする為。
don't create db directory when skip active_record
railties/lib/rails/generators/rails/app/app_generator.rb
の修正です。
rails new
コマンドにskip_active_record
オプションを指定した場合に、db
ディレクトリを作成しないよう修正しています。
Explicitly unpack the expanded args to avoid execution order diff.
activesupport/lib/active_support/callbacks.rb
の修正です。
ActiveSupport::Callbacks::CallTemplate#make_lambda
、#inverted_lambda
メソッドで、#expand
メソッドの戻り値をまとめてArrayとして扱っていたのを、個別に変数に格納するよう修正しています。
- c = expand(target, value, block) - c.shift.send(*c, &c.shift) + target, block, method, *arguments = expand(target, value, block) + target.send(method, *arguments, &block) end
元のコードはc
変数のスプラッティングがshift
処理より前に行われる事が期待されていたのですが、実際はそうではなかった(shift
の後に行われていた)為、blockを指定した際に正しく動作しない問題があった為、変数を分けるようにして対応したとの事です。
なお、Ruby本体のバグではないかという事で、bugs.ruby-langにチケットが作られています。Bug #12860: Splatting an argument does not obey left-to-right execution order - Ruby trunk - Ruby Issue Tracking System