木内智史
samur****@don-q*****
2006年 11月 23日 (木) 05:43:46 JST
木内です。 どうもお世話になっております。Globalフィルターの話題が出たので、僕もちょっ と提案をしようと思います。 Globalフィルターの登録方法は、先ほどのHawkさんの話だとかなり自由度が高く なったようですが、素人目で見て、ちょっと分かりづらくなったように思います。 仕様と言えばそれまでですが、”Global”と明示されていないものまでさかのぼっ て登録されてしまうと、(当然、そういう風な動作にならない方法があるとしても) 「あれ?」という感じが否めないと思います。 で、僕としては、やはりフィルターの登録に関してはその都度「Globalなの?」 「Localなの?」というのは明示していきたいのがMapleを使用した感想です。 現在、その明示の仕方が「Globalセクション」によって実現されている訳ですが、 これはHawkさんの言うようにかなりめんどくさいのです。 そこで、今のAlias別名登録と同じような感覚でGlobal指定できると楽だし直感 的だと思います。 具体的な例としましては… こんな感じです。 ## Global登録 [Filter @ global] ## Local登録(ディフォルトはこれ) [Filter @ local] ## マージ型(ディフォルトはこれ) ## 既に同名のフィルターが登録されている場合、重複するキーを上書きします [Filter @ local:merge] ## 上書き型 ## 既に同名のフィルターが登録されている場合、上書きします [Filter @ local:override] ## 追加型 ## エイリアス機能を利用して、同じフィルターをもう一つ追加します ## (エイリアス名を自動で決定して追加してくれます) [Filter @ local:push] ## 移動型 ## 既に同名のフィルターが登録されている場合、 ## 後から追加した場所に移動し、なおかつ重複するキーを上書きします [Filter @ local:move] ## 消去型 ## 既に同名のフィルターが登録されていた場合、以前のものを取り消し ## たうえで、新しく追加します [Filter @ local:clear] とこんな感じです。ちょっと分かりづらいですか? もう既に検討された形かな?とも思うのですが、実際「俺様Maple」としてこの 形式を採用し、かなりmaple.iniが分かりやすくなったと思っています。 そしてかなり自由度のたかいフィルター登録が行えています。 現在のMapleとの互換性は保ったまま改良できるポイントですので、採用を検討 していただけると嬉しいです。 ソース自体は、既に僕自身のMapleがこの形で動いていますので、すぐに提示も 可能です。 それでは、よろしくお願いいたします。 ============================================================ <<<Original Message>>> [From] : Hawk <schol****@hawkl*****> [Time] : 2006-11-23 00:12:28 [件名] : [Maple-dev: 232] Re: ConfigUtilsクラスのreadConfig > Hawkです。 > > > GlobalFilterが指定してようとなかろうと指定アクションにいくまでの設定ファイル内のフィルタが > > 実行されているようです。 > > まさにそういう形で仕様変更が行われています。 > どこかに書いたと思っていましたが、 > 公式にはどこにも書いていなかったのですね……申し訳ありません。 > 一応、3.2.0α3からそういう仕様になっています。 > http://blog.hawklab.jp/item-82.html > > もう少し詳しく書きますと、 > GlobalFilterセクションが存在する場合は、 > 3.1.1以前と(ほぼ)同じように動作します。 > GlobalFilterセクションが存在しない場合は、 > 設定ファイルが設置された階層に関わらず、 > 全てのフィルタが登録されます(3.1.1以前における最下層の動作と同じ)。 > > このように変更された理由としては、 > 「最下層とその他の階層でルールが異なるのは分かりにくい」 > 「一々GlobalFilterセクションを書くのが面倒くさい」 > 等が挙げられます。 > > またGlobalFilterセクションを書きつつ、 > その中にフィルタ名を指定しないことで、 > より高度なフィルタの継承が可能になっています。 > http://blog.hawklab.jp/item-55.html > などを参考にしてみてください。 > > -- > Hawk : { > web site : http://blog.hawklab.jp/ > } > _______________________________________________ > Maple-dev mailing list > Maple****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/maple-dev ============================================================ -- 木内智史 <samur****@don-q*****>