2010-03-16
■ [ruby] Ruby meets Manpage
manは、Unix系OSで一般的に使われているドキュメントシステムだ。 これを、Rubyのgemに対しても応用できないかという試みが現れた。 その名もgem-man。
gem install gem-man
とすると、
gem man <gem名>
でそのgemの説明が見られるようになる。例えば
gem man gem-man
とか。
ライブラリ作者の側では、gemを作る際にman/以下にmanのファイルを置けばいい。
manファイルの作り方はman whatが参考になりそう (ronnを使う例が載っている)。
おまけ
http://man.cx/ruby : ネットでmanを引けるサイト。
■ [prog][memo] Test Doubleいろいろ
- Ruby Freaks Lounge:第35回 実用的なダミーサーバ ww(double-web)(1)|gihyo.jp … 技術評論社
- Martin Fowler's Bliki in Japanese - テストダブル
名前 | インターフェイスの実装 | 用途・備考 |
---|---|---|
dummy | 実装しない | 引数として渡すが、使われない |
fake | 実装する | ただし本物よりは性能などが劣る、仮実装 |
stub | 実装する | あらかじめ決められたものを返す |
mock | 実装する | 期待した呼ばれ方かどうかをテストする |
spy | 実装する | 呼ばれ方を記録して、あとで確認する |
■ [ruby] Rubyスクリプトをcronで回したいときはどうすれば良い?
ありがちな罠:
- PATHがいつもと違うせいので、portsで入れたやつじゃなくてMac標準のRubyが実行される
- GEM_HOMEがいつもと違うせいで、ライブラリが読み込めない
- RUBYOPT=rubygemsがないせいで、ライブラリが読み込めない
というのを避けるためには、どうするのが正しいんでしょう。
とりあえずcrontabの冒頭でこれらを設定することでなんとかなったが。
PATH=/Users/yhara/bin:/opt/local/bin:/opt/local/sbin/:/usr/local/bin:/usr/bin GEM_HOME=/some/where RUBYOPT=rubygems 0 * * * * /Users/yhara/proj/etc/cron_hatenagraph/hatena_graph.sh
自分ならラップしたシェルスクリプトを用意するかなぁ。