Everyday Scripting with Ruby


題名間違っているかもしれない。とてもおもしろい。256本のようにふざけてはいないけど、とても実務的なのが似ているかもしれない。


適度に軽くて実用的なRuby関係の本を探していたのでとても気に入っています。


最初のスクリプトが、とあるフォルダー以下のファイルに変更があったかどうか(ファイル名レベルの増減)を調べるスクリプトでそれだけでも便利。


購入は、Pragmatic ProgrammingでPDFでダウンロードできるので、それも便利。
日本の本屋も早くこうならないかと思います。


追記:あまり気になるのでメモ
#inventory.rb
Dir.glob('**/*').each { | file | file.downcase }.sort
この'**/*'という表記を知らなかった。どこに書いてあるのだろう。リカーシブにフォルダーの中の全てのファイルを取ってくれる。シェルのファイル名展開(ワイルドカード)や通常の正規表現にはないよね?



追記:テストを先に書く、テストドリブン、テストドリヴン、テストユニット、による開発というのは何度も本では読みましたが、なかなか腑に落ちないでいました。この本にすごく簡単な実例があって、なるほどこうするのかと納得した次第。で、テンプレート代わりに最初の数行をメモしておきます。

require 'test/unit' 
require 'churn-re'     
class ChurnTests < Test::Unit::TestCase 
  def test_month_before_is_28_days
    assert_equal(Time.local(2005, 1, 1),
                 month_before(Time.local(2005, 1, 29)))
  end
end

これを走らせる(\>ruby churn-test.rb)と、エラーなし、という結果になるのですが、このプログラム自体はテストを定義しているだけ。そこに開発中のプログラム(この例ではchurn-re.rb)を読み込んでテストしている。これなら相当だらしなく開発してもそこそこしっかりした完成品ができそうな気がするがどうか。