Skip to content
SAKATA Sinji edited this page Oct 29, 2023 · 6 revisions

1. Rubyのインストール

BCDiceはプログラミング言語Rubyで書かれているため、Rubyのインストールが必要です。

Rubyのインストール方法はOSによって大きく異なります。Ruby公式のインストールガイドを参照してください。

2. 開発に必要なパッケージのインストールと準備

開発中のダイスボットをテスト(意図どおりに動作しているか確認)するために、いくつかのGem(Ruby用のパッケージ、ライブラリ)をインストールする必要があります。

2.1 Bundler

Gemのインストールには、Rubyのパッケージ管理システムBundlerを用います。Bundlerは下記コマンドでインストールします。場合によっては管理者権限が必要なので注意してください。

gem install bundler

以後の操作は全てBundlerを経由して行います。詳しい使い方については、以下を参照してください。

2.2 Gemのインストール

BCDiceのディレクトリ下で以下を実行すると、 BCDice/Gemfile に書かれたGemがインストールされます。

bundle install

2.3 必要なファイルの生成

コマンドのパース処理に関するコードを以下のコマンドで生成します。

bundle exec rake racc

3. 開発

3.1 コード/テストを書く

時は満ちた! さあ、コードを書こう!

ダイスボットを開発するなら、「ダイスボットのつくりかた」を読みながら、手順どおりに進めてみましょう。ダイスコマンドの処理の書き方で迷ったら、既存のダイスボット(lib/bcdice/game_system/*.rb)のコードを参考にしてみてください。

また、「ダイスボットのつくりかた」でも解説されているように、BCDiceではダイスボットのテストが重視されています。ダイスボットでよく使われると思われるコマンドを中心に、テストデータ(test/data/*.toml)も用意しましょう。

3.2 実行してみる

作ってみたダイスボットが期待通りに動くか確認してみましょう。

bundle exec ruby bin/repl.rb GAME_ID

3.3 コードの整形

コーディングには、インデントの仕方ひとつをとっても様々な流派があります。プロジェクトの中で書き方が統一されていないと、コードが非常に見辛くなってしまいます。そこで、プロジェクトのルールを決め、ツールを使ってコード整形をするのが一般的です。

BCDiceでは、RuboCopを使ってコードを整形しています。以下に示すコマンドを実行すると、RuboCopがルール違反を見つけ、直せる部分は自動で修正してくれます。

bundle exec rubocop -a

追加、変更したコードに対して、RuboCopがエラーを報告しなくなるまで、指示に従ってコードを修正してください。

RuboCopの詳細については、以下を参照してください。

4. テスト

4.1 全体のテスト

BCDiceでは、ダイスボットの挙動を確認するためのテストの仕組みを用意しています。以下のコマンドを実行すると、テストコードが実行され、意図どおりにダイスボットが動作するか確認されます。

bundle exec rake test

テストが成功した場合 100% passed と表示されます。失敗した項目があった場合は、その項目の詳細(期待した出力と実際の出力など)が表示されます。

テストの失敗は、ダイスボットの挙動が意図と異なることを示します。そのため、失敗した項目と関連するコードを修正する必要があります。

4.2 特定のゲームシステムのテスト

テスト実行時に、以下のようにゲームシステムID(以下では GAME_ID とします)を指定すると、指定したゲームシステムのダイスボットのテストのみを実行します。

bundle exec rake test:dicebots target=GAME_ID

複数のゲームシステムを一度にテストしたい場合は、ゲームシステムIDを , で区切って指定してください。

bundle exec rake test:dicebots target=GAME_ID1,GAME_ID2,GAME_ID3

4.3 特定の項目についてのテスト

※v3では未サポートです