namazu-dev(ring)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: File::MMagic



<199906140947.SAA18914@xxxxxxxxxxxxxx>の記事において
satoru-t@xxxxxxxxxxxxxxxxxxさんは書きました。

>> 試してみました。 make 一発で kakasi コマンドと libkakasi が
>> 作れるのはよいですね。が、どうせなら Perl の Text::Kakasi モ
>> ジュールも作れるようにパッケージングしません?

  うう、ということはautomake/autoconfの使い方を覚えなければならないん
ですね... できるだけそこは避けてきたのですが、ついに腹をくくらねばなら
ない時期が来たようです ^^;
  せっかくなので、shared libraryを作成する部分もちゃんとconfigureから
生成できるようにしたいと思います。現状ではGNU binutils以外を考慮してい
ませんので。

  が、これはちょっと時間がかかりそうなので当面先送りさせてください ^^;

>> >  CVSでの扱いはどうしましょう? CVSの管理下に置かないほうがよさそうな気
>> >もするのですけど...
>> 
>> CVSの管理下に置いていいんじゃないでしょうか? ディレクトリ名
>> にヴァージョンがつくと面倒なので File-MMagic という名前で。
>> んで、基本的に野首さんが保守すると。

  となると、手元にあるFile::MMagic用リポジトリとNamazuとでバージョン番
号が違ってしまいますが、よくよく考えたらそんなに気にしなくてもいいよう
に思えてきました。
  では、こちらでの実装が進んだ段階でcommitすることにします。

# contrib以下に置いたアーカイブもremoveしないと...

>> 文書の読み込み部とフィルタ部は統合して見通しをよくしたいと思っ
>> ています。また、API を決めて新しいフィルタを追加しやすくした
>> いところです。

  とりあえず、フィルタ部についてだけ考えてみました。

現状:
・%HELPER_PROGRAMSにて、拡張子に対応するコマンドを定義する
・ファイル名を検査し、対応するコマンドを呼び出して処理する
・圧縮されたデータは特殊な扱いをする

新案:
・%HELPER_ACTIONSにて、Media Typeに対応する処理関数とを定義
・%REQUIRE_ACTIONSにて、Media Typeに対応して呼び出すモジュール
  (lib/*.pl)を定義
・@RECURSIVE_ACTIONSにて、再帰的に処理を行うMedia Typeを指定
  (圧縮データなど)

Ex.

%HELPER_ACTIONS = {
	'text/x-roff' => 'troff::format',
	'text/html' => 'html::process',
	'application/x-gzip' => 'gzip::inflate',
	'application/x-compress' => 'compress::uncompress'
};

%REQUIRE_ACTIONS = {
	'text/x-roff' => 'troff',
	'text/html' => 'html',
	'application/x-gzip' => 'gzip',
	'application/x-compress' => 'compress'
};

@RECURSIVE_ACTIONS = qw(application/x-gzip application/x-compress);

  このような案を考えたのですけどいかがでしょうか?

>> 必要とあれば現在 lib ディレクトリの下にある *.pl のコードは
>> Perlモジュール化していきましょう。 (野首さん、助言をお願いし
>> ます)

  とりあえずは、そこまで必要とはしないと思います。今後状況が代わって来
るようであれば、その時考えましょう。

>> ># しかし、こういう場合はbranchを分けて実装を勧めたほうがいいんでしょう
>> ># か...?
>> 
>> うーん、私には経験がないのでわかりません。 NMZ.result の機構
>> を実装したとき [namazu-dev 61] は手元でまとめて作業して 
>> commit はまとめて行いました。本来は branch を作ってこまめに 
>> commit した方がよかったのかな?
>> 
>> # branch は作ったことがないのでよくわかっていません

  私もこの間始めてbranchを作ったのですが、作成したbranchから元のbranch
に変更を統合するようなことまではしていないので、やっぱり良く分かってい
なかったりします ^^;

  まあ、ものは試しということで実際にbranchを作ってやってみることにしま
す。ひと段落するまで実装を続けてみて、これで不都合があるようなら次回か
らは作らないようにすればいいわけですし。
-- 
野首 貴嗣
E-mail: knok@xxxxxxxxxxxxx (private)
        nokubi@xxxxxxxxx (official)