Closed R-F-D closed 2 years ago
非常に魅力的、かつ活用しがいのありそうな提案ありがとうございます。
ヘルプメッセージがより構造的になるのは非常にメリットなのですが、以下のデメリットに目がいってしまって導入には否定的な印象を持っています。
この方式を採用するならば、あくまで生成するプレーンテキストを最終成果物とし、ヘルプメッセージを宣言的に記述できる補助ツールとして用いるのが着地点かなと思います。ただ、この着地点だとあくまでプレーンテキストを改善するというのが結果になってしまうので、わざわざ仕組み化せずとも従来の方式で内容を充実化することでも達成できてしまいます。
R.F.D.さんがこの提案をなさった意図は、あくまでコマンドの定義そのものをオンセツールなり公式ドキュメントで生かしたいという点だと思いますが、活用は難しいのではないかと思います。特に、オンセツールがBCDice-APIを使っている場合はBCDiceのバージョンを固定できませんし、バージョンを見て挙動を変えるように促すのはあまりしたくないです。
仮に導入する場合の検討
lib/bcdice/game_system
以下の各Rubyコード@R-F-D 「個々の機能」の詳しさから、(従来のプレーンテキストとは別に)Doxygenで出力されるドキュメントのようなものが想定されているのでしょうか?
@R-F-D 「個々の機能」の詳しさから、(従来のプレーンテキストとは別に)Doxygenで出力されるドキュメントのようなものが想定されているのでしょうか?
そこまで豪勢なものではないですけど、イメージとしてはまさにそんな感じでした。
各ゲームシステムに紐づくドキュメントは 現在、GameSystem派生の各クラスの下に、プレーンテキストの形で記述されています。 (ただし標準ダイスボットを除く)
これをJSON等で構造化することで 公式ドキュメント作成やオンセツール側での様々な活用が可能になると考えます。
現状のHELP_MESSAGEを見て検討したところ、以下のような構造であればうまく整理できそうです。
enabledD66 {boolean} - D66ダイスの可否。変数 @enabled_d66 から自動取得。
自動取得とあるものは、ソースコードから取得ないし実行時に動的取得が望ましい要素です。 逆に、JSON側データを主として、クラス内でこれを読み取るという形も考えられます。
とりあえずの懸念点は