bcal.rb -- Blood Donors' Calender Written in Ruby

これは何?

献血した日付, 種類を入力すると, 次回の献血可能日を計算してくれるス クリプトです. オブジェクト 指向スクリプト言語 Ruby で記述されていて, bdrec.rb で定義されてい る BloodDonationRecord クラスを利用しています.

時流に反し, 視覚的なインターフェースはなく, 武骨に コマンドを入力して利用します.

使い方

bdrec.rb が必要なので, あらかじめ適当な :-) ディレクトリに置いてお いて下さい. bcal.rb を起動すると, bcal> というプロンプトが出ま す. Ruby の拡張モジュール readline を使ってますので, それなりの操作が 可能です.

コマンドには, 以下のものがあります. いわゆる半角文字であれば, 基本 的に大文字, 小文字は問いません. プロンプトに続けてコマンド, そして必要 に応じてオプションなどを続けて下さい.

Add (a)
bcal> a YYYY MM DD type

献血記録を追加します. 年は西暦で, 下 2 桁だけじゃなくてきちんと入力して下さい. 月は 1 から 12 まで. 日は 1 から 28, 29, 30, 31 のいずれかまで になります.

type には "200ml", "400ml", "PLT" (Platelet, 血小板), "PLS" (Plasma, 血漿), "PLT + PLS" (Platelet (血小板) + Plasma (血漿)) の いずれかを指定します. ソースファイルを見るとわかりますが, 実は 少しだけ省略して入力することもできます.

Delete (d)
bcal> d YYYY MM DD

献血記録を消します. コマンドに続けて, 年月日を指定します.

show List (l)
bcal> l type

献血の記録を表示します. type には "d" (Donate, 献血した日) と "c" (Cannot donate, 献血できない日) の どちらかを指定します. 「献 血した日」とは入力された年月日を, 「献血できない日」とは入力さ れた献血日の中で一番新しい日以降において献血不可能な日を, それぞ れ意味します.

ただし普通の人にとっては, type に "c" を指定するくらいなら, n コマンドの方が便利でしょう.

change seX (x)
bcal> x type

性別を変更します. type には "f" (Female) か "m" (Male) を指定し ます. type に何も指定しないときは, 現在設定されている性別が表 示されます.

show Next (n)
bcal> n

次の献血可能な日を, 献血の種類毎に表示します.

Read file (r)
bcal> r filename

それまで扱っていたデータは破棄され, ファイルに保存されたデータが新規に読み込まれま す. filename にファイル名を指定します.

Save file (s)
bcal> s filename

扱っていたデータを, filename に指定したファイル に保存します. 保存されるデータは, 性別と, 献血した日と種類です. テキストデー タなので, ソースを読める人 or 勘のいい人ならエディタなどでデー タを編集することができるでしょう.

Help (h)
bcal> h

下手な英語で書かれたヘルプメッセージが表示されます.

Quit (q)
bcal> q

終了します. ファイルにデータを保存していないときでも, 確認 しないですぐに終了します.

$ bcal.rb                         # 起動

bcal> x m                         # 性別を男にする
You are Male

bcal> a 1999 7 18 PLT             # 1999/07/18 に血小板
1999-07-18 Platelet added

bcal> n                           # 次はいつ?
Your next donation date is
  200ml 1999-08-01
  400ml 1999-08-01
  Platelet      1999-07-25
  Plasma        1999-08-01

bcal> s dona.dat                  # dona.dat というファイルに保存
Saved to "dona.dat"

bcal> q                           # 終了
See you again (^o^)/~~

ひとこと


m@sa.to or msato@iis.u-tokyo.ac.jp