2015/11/17分のコミットです。
CHANGELOGへの追加はありませんでした。
Merge pull request #22215 from grosser/grosser/normalize_key
Active Supportのcache処理の修正です。
各cache backends毎にやっていたcache keyのノーマライズ処理、を共通の親クラスであるActiveSupport::Cache::Store
でのみ行うようリファクタリングを行っています。
Using released concurrent-ruby
Gemfile.lock
、activesupport/activesupport.gemspec
の修正です。
concurrent-ruby
のバージョンを1.0.0.pre5
から1.0.0
に修正しています。
Merge pull request #22257 from yui-knk/fix_merge_to_not_call_to_proc_for_hash
activerecord/lib/active_record/relation/spawn_methods.rb
の修正です。
ActiveRecord::SpawnMethods#merge!
メソッドがRubyのtrunkで動かなくなっていたのを修正しています。
def merge!(other) # :nodoc: - if !other.is_a?(Relation) && other.respond_to?(:to_proc) + if other.is_a?(Hash) + Relation::HashMerger.new(self, other).merge + elsif other.respond_to?(:to_proc) instance_exec(&other) else - klass = other.is_a?(Hash) ? Relation::HashMerger : Relation::Merger - klass.new(self, other).merge + Relation::Merger.new(self, other).merge end
元々は、引数のother
にto_proc
メソッドが定義されていた場合instance_exec
メソッドでブロックを実行し、to_proc
が定義されていない場合は、引数がHash
の場合はRelation::HashMerger
、それ以外の場合はRelation::Merger
クラスを使ってマージ処理を行っていました。
しかし、Ruby 2.3.0からHash
にto_proc
が定義されており(hash.c: to_proc · ruby/ruby@fbe967e)、Hash
もto_proc
のチェックでひっかかるようになってしまった為、最初にHash
かどうかをチェックするよう修正しています。
Merge pull request #22271 from timbreitkreutz/twb-9015-schema-dumper-test-for-prefix-and-ignore
activerecord/test/cases/schema_dumper_test.rb
の修正です。
table_name_prefix
とignore_tables
を指定した場合のSchemaDumper
の挙動についてのテストを追加しています。
Raise ArgumentError when passing a truthy value to merge
activerecord/lib/active_record/relation/spawn_methods.rb
の修正です。
ActiveRecord::Relation#merge
メソッドに、不正なtruthyな値が指定された場合に、ArgumentError
をraiseするよう修正しています。
Raise ArgumentError when passing nil to Relation#merge · rails/rails@b71e08fでnil
、false
が渡された場合にArgumentError
をraiseするよう対応しており、不正なtruthyな値の場合も同様にraiseするよう修正したとの事です。