なるようになるブログ

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

rails commit log流し読み(2015/04/02)

2015/04/02分のコミットです。

CHANGELOGへの追加はありませんでした。


[ci skip] Replace reraised with not captured

rails guideのActive Support Core Extensionsの修正です。

suppressメソッドの説明で、指定した例外をキャプチャしなかった場合の挙動の説明に誤りがあったのを修正しています。


[skip ci] Add information about #link_to target option

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

link_toメソッドのdocに、targetオプションを指定した場合の説明を追加しています。


Remove old mri platform entries from our Gemfile

Gemfileの修正です。

GemfileからRuby 1.9系、2.1系向けの記述を削除しています。


Prefer string patterns for gsub

String#gsubメソッドの引数にRegexpを渡していたのを、Stringを渡すよう修正しています。

例。

-          message = json.gsub(/\n/, "\ndata: ")
+          message = json.gsub("\n", "\ndata: ")

Ruby 2.2からStringを渡した方が高速になる対応が入ったとの事です。PRはこちら

コミットに記載されていた計測結果は以下の通りです。

  Benchmark.ips do |bm|
    bm.report('regexp') { 'this is ::a random string'.gsub(/::/, '/') }
    bm.report('string') { 'this is ::a random string'.gsub('::', '/') }
    bm.compare!
  end
  # string: 753724.4 i/s
  # regexp: 501443.1 i/s - 1.50x slower

割と差が出るんですねえ。


Freeze static arguments for gsub

gsubメソッドの引数に指定しているStringをfreezeするよう修正しています。