blosxomのフレーバーを提供するモジュールを考え中

読了まで:約1分


blosxom の​フレーバーシステムを​提供する​モジュールを​考え中。


blosxom の​フレーバーシステムを​ Perl モジュールにしようと​考えているんだけど、​細かい​ところが​決まらない。​とりあえず​ OO Interface だけにしようと​思っては​いるんだけど、​コンストラクタの​引数を​どうするかで​悩んでる。

とりあえず​メソッドとかは、

use HTML::Flavour;
my $tmpl = HTML::Flavour->new();
my $head = $tmpl->template('/foo/bar', 'head', 'html');
$tmpl->param(
foo => 'bar',
bar => 'foo',
);
$head = $tmpl->interpolate( $head );

こんな​感じにしようかと​思っているんだけど、template​, interpolate,paramの​入れ替えを​どう​実装するかが​決まらない。

blosxom の​場合、paramを​除くと​して、template​,interpolateは​プラグインに​よって​書き換え可能なので、​それを​モジュールでも​やらないと​意味が​ない。​で、​なるべく​使いまわしが​できるように、​HTML::Flavour で​各メソッドの​クラスを​指定すると​いう​感じに​したい。

と​なると、​コンストラクタで​指定した方が​よさげなんだけど、​どうした​もんか。

とりあえず​思いついたのが、

# アイディア1
my $tmpl = HTML::Flavour->new(
template    => {
class   => 'Template::Class',
config  => { name => 'value' },
},
interpolate => {
class   => 'Interpolate::Class',
config  => { name => 'value' },
},
);
# アイディア2
my $tmpl = HTML::Flavour->new(
class   => {
tempalte    => 'Template::Class',
interpolate => 'Interpolte::Class',
},
config  => {
template    => { name => 'value' },
interpolate => { name => 'value' },
},
);
# アイディア3
my $tmpl = HTML::Flaovur->new(
'Template::Class'       => { name => 'value' },
'Interpolate::Class'    => { name => 'value' },
);

こんな​感じ。

これ以外にも​名前を​どうするとか。​とりあえず​ HTML::Flavour に​してあるけど、​他の​方が​いいとか​悪いとか。​これ​作んないと​ NyakiLog の​方も​進まない。

誰か​助言を​プリーズ。

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。
次に備えて待機中。

今は趣味でプログラミングをして
生活しています。