View Source Kyopuro

AtCoder用のmixタスクを提供するパッケージです。このパッケージはモジュールの生成とテストケースの生成、提出を行うmixタスクを提供します。


インストール

depsへの追加とmix deps.getを実行してください。

def deps do
  [
    {:kyopuro, "~> 0.6.0"}
  ]
end

使い方

過去バージョンではAtCoderYukiCoderに対応していましたが、現バージョンではAtCoderのみ対応しています。

AtCoder

Login - ログイン

最初にmix kyopuro.loginを実行します。

$ mix kyopuro.login

認証情報はプロンプトから入力、もしくはConfigから取得させることができます。

Configから認証情報を取得させる場合は以下のように記載してください。

# in config/config.exs
import Config

config :kyopuro,
  username: "hogehoge",
  password: "hugahuga"

ログインに失敗した趣旨のメッセージが表示された場合は、認証情報を確認の上再度実行してください。

Generate module & test - モジュールとテストの生成

ログインが完了したらmix kyopuro.newを実行してモジュールとテストを生成することができます。

$ mix kyopuro.new

コマンドを実行すると選択肢が表示されるので指示に従いコンテストと問題を選択してください。

ABC100を選択した場合モジュールとテストは以下のように生成されます。

  lib - hoge - abc100  a.ex
                       b.ex
                       c.ex
                       d.ex
 
  test - hoge_test - abc100  a_test.exs
                              b_test.exs
                              c_test.exs
                              d_test.exs

Running Tests - テストの実行

テストを実行するにはmix test <ファイルパス>を使用します。

例としてABC100のA問題のテストを実施するには以下のようなコマンドになります。

$ mix test test/hoge_test/abc100/a_test.exs

Submit - 提出

提出するにはmix kyopuro.submit <ファイルパス>を使用します。

例としてABC100のA問題を提出するコマンドは以下のようになります。

$ mix kyopuro.submit lib/hoge/abc001/a.ex

複数提出したい場合は連続してファイルパスを指定することで提出できます。

$ mix kyopuro.submit lib/hoge/abc001/a.ex lib/hoge/abc001/b.ex

ファイルパスは単なる前方一致なので、以下のように指定すればlib/hoge/abc001配下のファイルをすべて提出することができます。

$ mix kyopuro.submit lib/hoge/abc001

注意事項

提出に必要な情報はmix kyopuro.newを実行したときに生成されるmappingが持っているため、そこに記載のないファイルのパスを指定しても提出されません。手動で作成したモジュールを提出したい場合はmappingを手動で編集してください。

Template - テンプレート

生成するモジュールやテストコードのテンプレートをカスタマイズすることができます。必要な

# in config/config.exs
import Config

config :kyopuro,
    module_template: "#{module_template_file_path}"

コントリビュート

適当にIssueを立てていただいたり、PRを作成していただいて構いません。