Namazu-devel-ja(旧)


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

Re: フィルタの優先順位設定 Re: tar.pl作成



Tadamasa Teranishi wrote:

> > Perlなので適当なフォーマットを決めればどうとでもできそうです。
> > ただ、複雑な指定書式は避けたいです。
> 
> ということですが、
> 
> > $USE_FILTERS = "
> >   application/excel xxxx.pl     # 優先順位 高
> >   application/excel excel.pl    # 優先順位 中
> >   application/excel XXXX.pl     # 優先順位 低
> >   application/ichitaro5 taro56.pl
> >   application/ichitaro6 taro.pl
> > ";
> 
> これの代わりに
> 
> > %use_filters = (
> >  'aplication/excel' => ['xxxx.pl','excel.pl','XXXX.pl'],
> >  'application/ichitaro5' => ['taro.pl','taro56.pl'],
> >  'application/ichitaro6' => ['taro.pl','taro56.pl']
> > );
> > 
> > となるようにしてみたdiffを添付しています。
> 
> これをそのまま rc ファイルに記述するので良いのでは?
> 十分シンプルだと思いますが。
> -- 
確かに私にも十分シンプルに見えますが
Namazuを使っている人がみんなPerlの書式を理解しているわけではないので
編集時に記述ミスがでるのではないかなと考えました。

私も中身を理解していなかったころに
mknmzrcの編集ミスではまって namazu-users-ja で教えてもらいました。

パースしている個所は2行なので
ソースの量的にはたいしたことはないです。(ちょっと汚いですが)
+    my %use_filters;
+    while ($conf::USE_FILTERS =~ /^\s+(\S+(;\s)*\S*)\s+(\S+)\s*(#.*)*$/gm){
+	$use_filters{$1}[$#{$use_filters{$1}} + 1] = "$FILTERDIR/$3";
+    };

また、conf.plとvar.plがグローバル変数の置き場であることからoptionのパースや
mknmzrcの読込のタイミングに制限をもたらしているのが気になっています。
Perlのモジュール型の設定ファイルからいつか脱却したほうがよいだろうと思って
います。

ただ、今の設定方法が採用された経緯はよくしらないのですが、いまのスタイルも
利点があります。
変な独自書式を作るよりPerlの書式を剥き出しにしておいて書き方の意味はPerlの
ドキュメントを見ればわかる、という考え方も正しいのかもしれません。

臼田幸生