自ら添削

Rubyは色々な書き方ができる。以下のコードを1行で書いてみた

to = []
DATA.each do |line|
  if /TODO:(.*)/ =~ line
    to << $1
  end
end
puts to

__END__
bbbb
cccc
hhhh
TODO:aaa
TODO:bbb

TODO:ccc
puts DATA.inject([]) {|a, e| a << $1 if /TODO:(.*)/ =~ e;a}

__END__
bbbb
cccc
hhhh
TODO:aaa
TODO:bbb

TODO:ccc

Array#injectはブロックの結果を次に渡す。
最後のaを書き忘れてて、はまりました。