読者です 読者をやめる 読者になる 読者になる

scanのブロックの引数

Ruby

Ruby1.8からRuby1.9に変えてからGitHub - iwadon/text-hatena: A Ruby library for Hatena notationが動かなくなったので原因を調べてた。Ruby1.9だと下のようなコードはsyntax errorで死ぬんだけど、1.8だと通る。

l.scan(/([^\|]+)\|/) do |$_, *|
  if sub!(/^\*/, "")
    c.htmllines("#{t}\t\t<th>#{$_}</th>")
  else
    c.htmllines("#{t}\t\t<td>#{$_}</td>")
  end
end

通るのはいいんだけど、scanのブロックに与えてある2つの引数はなんなんだ。特に2つ目。。。