個人的には Sagittarius に欲しいライブラリは gdbm とかかな。 リレーショナルデータベースはちょっとしたスクリプトには豪華すぎる。 sqlite があるから気軽な用途にも使えるんだろうけど私は SQL とかようわからんし。
— (32) 齊藤敦志 (@SaitoAtsushi) October 18, 2013
GDBMは外部ライブラリが必要なのでWindows対応しづらいという点から直接のサポートは別の方法を取るとして、とりあえずインターフェースを作った。APIはGauche互換(というかほぼ流用)で、こんな感じで使える。
(import (rnrs) (dbm) (clos user)) (define-constant +dumb-db-file+ "dumb.db") (define dumb-class (dbm-type->class 'dumb)) (let ((dumb-dbm (dbm-open dumb-class :path +dumb-db-file+ :key-convert #t :value-convert #t))) (dbm-put! dumb-dbm 'key1 #t) (dbm-get dumb-dbm 'key1) (dbm-close dumb-dbm))Sagittarius本体でサポートするのはPythonのdbm.dumbに影響を受けた(dbm dumb)。ひょっとしたらGaucheのfsdbmみたいなのも入れるかもしれないが、当面は予定がない(訳:自分が使わない)
どうでもいい情報としては、DBMが開いてるかとかのチェックをCLOSの:beforeでやってること辺りか。わざわざcall-next-method呼ばなくてもいいので便利である。
No comments:
Post a Comment