Message::Util::Formatter

Message::Util::Formatter

[1] manakai のモジュール群 Message::Util::Formatter <IW:SuikaCVS:"messaging/manakai/lib/Message/Util/Formatter/"> は、雛形と引数から結果を得るための汎用モジュールです。

たとえば、雛形 %year (digit => 4, zone => {+09:00});-%month (zone => {+09:00});-%date (zone => {+09:00}); と現在時刻から日付を得る (ように構成する) ことができます。

[5] Message::Util::Formatter という名前のモジュールは既に obsolete です。当分は互換性のために manakai の一部として配布されますが、 このモジュール自体は使わないでください。

代わりに、 Message::Util::Formatter::* というモジュール群が用意されています。

雛形の書式

[6] Message::Util::Formatter::* に与える雛形の書式を、 Message::Util::Formatter 形式などと呼んでいます。 もっと短くて分かりやすくて格好良い名前があったら教えてください!

詳しくは Message::Util::Formatter//書式を見てください。

結果を得る

[7] Message::Util::Formatter で雛形から結果を得るには、

require formatter-module;
my $formatter = formatter-module->new (%option);

$result1 = $formatter->replace ($template1, %option1);
$result2 = $formatter->replace ($template2, %option2);

のようにしてください。

書式付けモジュールの作成

TBD

歴史

[2] もともと、 Message::Field::Date で任意の書式で日付を出力するために Message:Util::Formatter モジュールが書かれました。

その後、 SuikaWiki (2) で WikiForm を記述するための書式として採用されました。 更に、 WikiView など、 SuikaWiki 全体に渡って Message::Util::Formatter が使われるようになりましたが、その際に、 XML のような木構造を扱うために、出力を単純な文字列ではなく、 Perl の物体にできるようになりました。

[3] このような建て増しの結果 Message::Util::Formatter は柔軟な扱いができなくなってしまいましたので、 新たに Message::Util::Formatter::Base とその派生級に再構成されました。 新しい構成では、文字列を得るための Message::Util::Formatter::Text, 木構造を得るための Message::Util::Formatter::Node, 論理値を得るための Message::Util::Formatter::Boolean が用意され、必要に応じて使い分けることができます。 また、以上のいずれかのモジュールを基底としてより特化したモジュールを実装することもできます。

メモ