2016/02/22分のコミットです。
CHANGELOGへの追加はありませんでした。
[ci skip] Mention testing fore-runners.
railties/lib/rails/test_unit/minitest_plugin.rb
のdocの修正です。
plugin_rails_init
メソッドのdocにRSpec
、minitest-reporters
やmaxitest
等を参考にした旨説明を追加しています。
[ci skip] Clarify collection caching went EXPLICIT.
actionview/CHANGELOG.md
の修正です。
Collection renderingのcache対応についのentryに、より詳細な説明を追加しています。
[ci skip] Document collection caching better.
actionview/lib/action_view/helpers/cache_helper.rb
メソッドのdocの修正です。
cache
メソッドのdocに、collection cachingについてのより詳細な説明を追加しています。
Merge pull request #23785 from eval/correct-types-examples
activesupport/lib/active_support/core_ext/numeric/conversions.rb
、
activesupport/lib/active_support/number_helper.rb
のdocの修正です。
doc内のexampleコードの実行結果を、ダブルクォートで囲むよう修正しています。
- # 5551234.to_s(:phone) # => 555-1234 - # 1235551234.to_s(:phone) # => 123-555-1234 - # 1235551234.to_s(:phone, area_code: true) # => (123) 555-1234 - # 1235551234.to_s(:phone, delimiter: ' ') # => 123 555 1234 - # 1235551234.to_s(:phone, area_code: true, extension: 555) # => (123) 555-1234 x 555 - # 1235551234.to_s(:phone, country_code: 1) # => +1-123-555-1234 + # 5551234.to_s(:phone) # => "555-1234" + # 1235551234.to_s(:phone) # => "123-555-1234" + # 1235551234.to_s(:phone, area_code: true) # => "(123) 555-1234" + # 1235551234.to_s(:phone, delimiter: ' ') # => "123 555 1234" + # 1235551234.to_s(:phone, area_code: true, extension: 555) # => "(123) 555-1234 x 555" + # 1235551234.to_s(:phone, country_code: 1) # => "+1-123-555-1234"
戻り値はStringな為。
Match test name to test (typo)
activerecord/test/cases/validations/length_validation_test.rb
の修正です。
validates_length_of
のテストをしているのに、テスト名がxxx_validates_presence_of_xxx
になっていたのを、テスト名をxxx_validates_length_of_xxx
に修正しています。
Add a note about downcasing submit tag
rails guideのRuby on Rails 5.0 Release Notes
の修正です。
submit buttonのvalueに表示するmodel名を小文字に変換するよう修正した、Merge pull request #2764 from stevenspiel/titleize_model_name_for_default_submit_button_valueの対応について、releas noteに追記しています。
Merge pull request #23743 from maclover7/rm-unused-parameter
activemodel/lib/active_model/errors.rb
の修正です。
ActiveModel::Errors#normalize_detail
メソッドから、使用していないattribute
引数を削除しています。
Merge pull request #23803 from kamipo/reduce_attribute_to_s
activerecord/lib/active_record/validations/uniqueness.rb
の修正です。
ActiveRecord::Validations::UniquenessValidator
クラスで、attributeへのStringへの変換処理を減らせるようにする為に、変換したStringの値を使いまわすよう修正しています。
Merge pull request #23776 from chi6rag/master
activesupport/test/core_ext/date_time_ext_test.rb
の修正です。
うるう年の場合にDateTime#last_week
メソッドが正しい値を戻す事を確認するテストを追加しています。
Merge pull request #23682 from ShikChen/fast_strxor
actionpack/lib/action_controller/metal/request_forgery_protection.rb
の修正です。
xorの計算をするメソッドで、Stringでループするのにeach
+ byte
を使用していたのを、each_byte
を使用するよう修正しています。each_byte
の方が高速の為。
PRにあったベンチマークは下記の通りです。
require 'benchmark/ips' require 'allocation_tracer' a = 32.times.map { rand(256) }.pack('C*') b = 32.times.map { rand(256) }.pack('C*') def xor_byte_strings1(s1, s2) s1.bytes.zip(s2.bytes).map { |(c1,c2)| c1 ^ c2 }.pack('c*') end def xor_byte_strings2(s1, s2) s2_bytes = s2.bytes s1.bytes.map.with_index { |c1, i| c1 ^ s2_bytes[i] }.pack('c*') end def xor_byte_strings3(s1, s2) s2_bytes = s2.bytes s1.each_byte.with_index { |c1, i| s2_bytes[i] ^= c1 } s2_bytes.pack('C*') end fail if xor_byte_strings1(a, b) != xor_byte_strings2(a, b) fail if xor_byte_strings1(a, b) != xor_byte_strings3(a, b) Benchmark.ips do |x| x.report('xor_byte_strings1') { xor_byte_strings1(a, b) } x.report('xor_byte_strings2') { xor_byte_strings2(a, b) } x.report('xor_byte_strings3') { xor_byte_strings3(a, b) } x.compare! end Tracer = ObjectSpace::AllocationTracer Tracer.setup(%i{type}) p xor_byte_strings1: Tracer.trace { xor_byte_strings1(a, b) } p xor_byte_strings2: Tracer.trace { xor_byte_strings2(a, b) } p xor_byte_strings3: Tracer.trace { xor_byte_strings3(a, b) }
Warming up -------------------------------------- xor_byte_strings1 10.668k i/100ms xor_byte_strings2 11.814k i/100ms xor_byte_strings3 13.139k i/100ms Calculating ------------------------------------- xor_byte_strings1 116.667k (± 3.1%) i/s - 586.740k xor_byte_strings2 129.932k (± 4.3%) i/s - 649.770k xor_byte_strings3 142.506k (± 4.2%) i/s - 722.645k Comparison: xor_byte_strings3: 142506.3 i/s xor_byte_strings2: 129932.4 i/s - 1.10x slower xor_byte_strings1: 116666.8 i/s - 1.22x slower {:xor_byte_strings1=>{[:T_ARRAY]=>[38, 0, 0, 0, 0, 0], [:T_STRING]=>[2, 0, 0, 0, 0, 0]}} {:xor_byte_strings2=>{[:T_ARRAY]=>[3, 0, 0, 0, 0, 0], [:T_DATA]=>[1, 0, 0, 0, 0, 0], [:T_IMEMO]=>[2, 0, 0, 0, 0, 0], [:T_STRING]=>[2, 0, 0, 0, 0, 0]}} {:xor_byte_strings3=>{[:T_ARRAY]=>[1, 0, 0, 0, 0, 0], [:T_DATA]=>[1, 0, 0, 0, 0, 0], [:T_IMEMO]=>[2, 0, 0, 0, 0, 0], [:T_STRING]=>[2, 0, 0, 0, 0, 0]}}
Merge pull request #23769 from kamipo/remove_alias_exec_without_stmt_exec_query
activerecord/lib/active_record/connection_adapters/mysql2_adapter.rb
の修正です。
#exec_query
から#exec_without_stmt
へのaliasを削除しています。
legacy mysql adapterの為のaliasであり、現状legacy mysql adapterはもうサポートしてない為、削除したとの事です。
actionpack/lib/action_dispatch/routing.rb
のdocの修正です。
Routing
moduleのdoc内のexampleでコメントをタイポしている箇所があったのを修正しています。
Merge pull request #23751 from chezou/add-test-case-order-by-field
activerecord/test/cases/relations_test.rb
の修正です。
ActiveRecord::QueryMethods#order
メソッドのプレースホルダに空の配列、nilを渡した場合のテストを追加しています。
Merge pull request #22748 from Azzurrio/master
activerecord/lib/active_record/connection_adapters/abstract/database_statements.rb
の修正です。
DBがPostgreSQLでprepared_statements
にfalseを指定した場合に、エラー("select_all': undefined method
preparable' for #<Arel::Visitors::PostgreSQL:0x007ff9416cf718> (NoMethodError)")が出てしまうバグがあったのを修正しています。