前に作ったプログラムを改良しようと思っても、
長い
と読む気がしない。特に私のような日曜プログラマーは、仕事のように必要に迫られることはないので、なおさらである。
しかしひょっとすると、プログラムが
短い
なら、読む気が起こるかもしれない。というわけで、以前書いた天気予報を取得するプログラムを、なるべく少ない行数に書き直してみた。
require 'weatherhacks'
case Time.now.hour # 午前中なら午後の天気予報を、午後なら翌日の天気予報を表示
when 0..11 then target_day = {:label => :today, :text => "今日"}
when 12..23 then target_day = {:label => :tomorrow, :text => "明日"}
end
puts "#{target_day[:text]}の天気:#{WeatherHacks.lwws("東京", target_day[:label]).telop}"
前のものは13行、これを6行に縮めることができた。
個人的には、たまに振り返るには5~10行の長さが限度であるように思う。ただ、上のソースは、実際には文字コードをSJISに変換しなければならないので以下のようになる。
# 文字コードSJISで出力させるための、おまじない
require 'kconv'
alias puts_original puts
def puts(string = "")
puts_original(string.to_s.tosjis)
end
# 本体
require 'weatherhacks'
case Time.now.hour # 午前中なら午後の天気予報を、午後なら翌日の天気予報を表示
when 0..11 then target_day = {:label => :today, :text => "今日"}
when 12..23 then target_day = {:label => :tomorrow, :text => "明日"}
end
puts "#{target_day[:text]}の天気:#{WeatherHacks.lwws("東京", target_day[:label]).telop}"
今まで書いたプログラムも同じ方法で見返してみようかな・・・