-
Notifications
You must be signed in to change notification settings - Fork 187
開発の始め方
BCDiceはプログラミング言語Rubyで書かれているため、Rubyのインストールが必要です。
Rubyのインストール方法はOSによって大きく異なります。Ruby公式のインストールガイドを参照してください。
開発中のダイスボットをテスト(意図どおりに動作しているか確認)するために、いくつかのGem(Ruby用のパッケージ、ライブラリ)をインストールする必要があります。
Gemのインストールには、Rubyのパッケージ管理システムBundlerを用います。Bundlerは下記コマンドでインストールします。場合によっては管理者権限が必要なので注意してください。
gem install bundler
以後の操作は全てBundlerを経由して行います。詳しい使い方については、以下を参照してください。
BCDiceのディレクトリ下で以下を実行すると、 BCDice/Gemfile
に書かれたGemがインストールされます。
bundle install
コマンドのパース処理に関するコードを以下のコマンドで生成します。
bundle exec rake racc
時は満ちた! さあ、コードを書こう!
ダイスボットを開発するなら、「ダイスボットのつくりかた」を読みながら、手順どおりに進めてみましょう。ダイスコマンドの処理の書き方で迷ったら、既存のダイスボット(lib/bcdice/game_system/*.rb
)のコードを参考にしてみてください。
また、「ダイスボットのつくりかた」でも解説されているように、BCDiceではダイスボットのテストが重視されています。ダイスボットでよく使われると思われるコマンドを中心に、テストデータ(test/data/*.toml
)も用意しましょう。
作ってみたダイスボットが期待通りに動くか確認してみましょう。
bundle exec ruby bin/repl.rb GAME_ID
コーディングには、インデントの仕方ひとつをとっても様々な流派があります。プロジェクトの中で書き方が統一されていないと、コードが非常に見辛くなってしまいます。そこで、プロジェクトのルールを決め、ツールを使ってコード整形をするのが一般的です。
BCDiceでは、RuboCopを使ってコードを整形しています。以下に示すコマンドを実行すると、RuboCopがルール違反を見つけ、直せる部分は自動で修正してくれます。
bundle exec rubocop -a
追加、変更したコードに対して、RuboCopがエラーを報告しなくなるまで、指示に従ってコードを修正してください。
RuboCopの詳細については、以下を参照してください。
BCDiceでは、ダイスボットの挙動を確認するためのテストの仕組みを用意しています。以下のコマンドを実行すると、テストコードが実行され、意図どおりにダイスボットが動作するか確認されます。
bundle exec rake test
テストが成功した場合 100% passed
と表示されます。失敗した項目があった場合は、その項目の詳細(期待した出力と実際の出力など)が表示されます。
テストの失敗は、ダイスボットの挙動が意図と異なることを示します。そのため、失敗した項目と関連するコードを修正する必要があります。
テスト実行時に、以下のようにゲームシステムID(以下では GAME_ID
とします)を指定すると、指定したゲームシステムのダイスボットのテストのみを実行します。
bundle exec rake test:dicebots target=GAME_ID
複数のゲームシステムを一度にテストしたい場合は、ゲームシステムIDを ,
で区切って指定してください。
bundle exec rake test:dicebots target=GAME_ID1,GAME_ID2,GAME_ID3
※v3では未サポートです