gaaamiiのブログ

悪気なく間違ったことを書いている時があります。コメントやTwitter、ブコメなどでご指摘ください

【Ruby】コードからコメント文だけを抜き出してみる

なんとかWebアプリを作るため、ペアプログラミング的な感じでRubyを教わっています。

作りながら学ぶRuby入門 第2版を進めながら、参考書のサンプルコードのコメント文は実装の手順みたいになっているので、コメント文だけを残して自分で書く。わからなければその都度質問したり、間違っていたらツッコミを入れてもらう、という勉強方法でやっています。というか教えて頂いてます。

で、そのコメント文以外を削除するというのを手動でやっているんですが、これは自動化した方がいいんだろうなと思いました。

(手順のコメントと実装コードが混在してる状態。ペアプロのためにコメント文だけを抜き出したい)
f:id:shgam:20130731020810j:plain

これくらいの処理なら今の自分でも書けるな、ということで書いてみました。

fname = ARGV[0]
 comments = []
 open(fname,"r") do |f|
   i = 0
   while row = f.gets
     line = row.strip
     if line =~ /^#/
       comment = row 
       comments[i] = comment
       print "#{i}: #{comments[i]} \n"
       i += 1
     end
   end
end

これを実行すると出力はこんな感じになります。インデントはあった方が良いので残しました。
f:id:shgam:20130731021415j:plain

ろくにメソッドは知らないしスマートになんて書ける気がしないけど、正規表現・ファイル入出力・式展開など、ちょうど今回勉強したところの復習になったと思う。

これをコンソールに出すだけじゃなくて新たなファイルに書き込むところまでやろうと思ってたけどちょっとよくわからないし眠くなったのでまた明日ということで。