TwitterBotを作るにあたっての覚書 Ruby編

こちらはRubyについてのメモ。

書式

  • インデント幅は2
  • インデントにはスペースのみを使用し、タブは使用しない。(環境によりタブ幅が異なるため。)
  • 一行の桁数は最大80桁

結構忘れる。

テキストファイルの読み込みと配列への格納

本の方ではひとりごとを1文ずつ配列に格納し、ランダム出力してましたが、EasyBotterはひとりごとの内容をテキストファイルに分離し、実行時に読み込んで処理してます。こちらの方が「""」の閉じ忘れとか「,」忘れとか防げていいなあと思い、そういう形に改変しました。
で、最初こう書いてました。

posts_rand = [] #空の配列用意
open("テキストファイルへのパスとファイル名") {|file|
  while l = file.gets
    posts_rand.push(l) #配列に1行ずつ追加
  end
}

Rubyで面白かったのは、わざわざファイルのクローズを宣言しないでも良い書き方があること。
上の場合、「open("テキストファイルへのパスとファイル名") {」でファイルをオープンし、「}」で自動的にクローズしてくれるそうです。分かりやすくてありがたい。


……てのは置いといて。
実はこう書いても同じコトが出来るそうです。

posts_rand = IO.readlines("テキストファイルへのパスとファイル名")

これでファイルのオープンからクローズ、さらに1行ごとの配列への格納までやってくれます。
……サギだろーー!?