なるようになるブログ

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

rails commit log流し読み(2015/01/17)

2015/01/17分のコミットです。

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

actionview/CHANGELOG.md

activesupport/CHANGELOG.md


Specify correct version in the changelog [ci skip]

activerecord/CHANGELOG.mdの修正です。

先日行われたtime_zone_aware_attributesに関する修正で、デフォルトが変更になる予定のRailsのバージョンに誤りがあったのを修正しています。


Use option url: false to allow entries without a link tag

actionview/lib/action_view/helpers/atom_feed_helper.rbの修正です。

AtomFeedHelper#entryメソッド:urlオプションに、nilまたはfalseを渡した場合、link tagを生成しないよう修正しています。

entryのlinkタグは必須ではないんですねえ。


Fix assignment for frozen value in HWIA

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

HashWithIndifferentAccessfreeze済みのarrayを指定した場合に、RuntimeErrorが起きてしまっていたのを対応しています。

value = [1, 2, 3].freeze
hash = {}.with_indifferent_access
hash[:key] = value # => RuntimeError: can't modify frozen Array

map!で値の変更を行おうとしていた為エラーになっていました。事前にdupする事で対応しています。


Underscore typo [ci skip]

rails guideのRails Internationalization (I18n) APIの修正です。

activerecordのエラーメッセージのlookup処理についての説明で、exampleに誤りがあったのを修正しています。


Update Molde Generator Usage

railties/lib/rails/generators/rails/model/USAGEの修正です。

model generatorのUSAGEにhas_secure_tokenを使う場合についてのオプションを追加しています。


Typo fix

rails guideのActive Record Query Interfaceの修正です。

"use" -> "to use"にタイポを修正しています。


Fixed extraneous quoting

rails guideのActive Record Query Interfaceの修正です。

メソッド名だけでなく、前後の余計な部分までquoteしてしまっていたのを、メソッド名だけ quoteするよう修正しています。


- Moved hwia frozen value assignment test to hash_ext_test similar to other tests

activesupport/test/core_ext/hash_ext_test.rbactivesupport/test/hash_with_indifferent_access_test.rbの修正です。

with_indifferent_accessメソッドの使い方を誤っていてコケていたテストの修正、及びコケていたテストを類似のテストがある箇所に移動していmさう。


Merge pull request #18554 from mechanicles/use-take-method

activesupport/lib/active_support/core_ext/array/access.rbの修正です。

toメソッドで値の取得にfirstを使用していたのをtakeを使うよう修正しています。

takeの方が性能が良いとの事。PRより。

require 'benchmark'
n = 5_000_000

Benchmark.bmbm do |x|
  x.report('Array#first') do
    n.times do
      %w( a b c d ).first 2 + 1
    end
  end

  x.report('Array#take') do
    n.times do
      %w( a b c d ).take 2 + 1
    end
  end
end
Rehearsal -----------------------------------------------
Array#first   3.700000   0.020000   3.720000 (  3.748538)
Array#take    3.610000   0.020000   3.630000 (  3.650994)
-------------------------------------- total: 7.350000sec

                  user     system      total        real
Array#first   3.550000   0.000000   3.550000 (  3.559413)
Array#take    3.470000   0.010000   3.480000 (  3.482277)

ちょっとだけ早いんですねえ。


Merge pull request #18493 from twoller/master

rails guideのGetting Started with Railsの修正です。

example内のアンカーテキストを、'Back to Articles'を'Back'に、'Edit Article'を'Edit'にそれぞれ修正しています。


[ci skip] Change to the passive voice

rails guideのAutoloading and Reloading Constantsの修正です。

"evaluates" -> "is evaluated"にグラマーを修正しています。