プログラムを書いて自分の思い通りに動かない時にこんな事やりません?
- 変数や配列などの値が何なのか、片っ端からprintしてみる
- if文や条件分岐などで、どこを通っているのか調べる為に、何かしらのprint文を埋め込んで、何処を通ったか可視化して調べてみる
- Rubyの場合、オブジェクトが何のクラスなのか、とりあえず puts hoge.class で出力して調べてみる
いわゆる、Printデバッグってやつですね。自分で作っているプログラムはそんなに大きくない事と、テスト駆動する程までもなかったり、そもそもテストの書き方もイマイチピンときていなかったり。
で、自分用にデバッグを助ける為に、ログを書き出すGemを作ってみました。
どんな事が出来るか
任意のログファイルを生成し、それに色んな値を書き出すクラスを作ってみました。 プログラムの冒頭部分でオブジェクトを生成します。引数には、書き出すログのファイルパスを指定します。
プログラム内の任意の場所で、
する事ができます。
色々思案したこと
bundlerを使ってGemを公開するまでの流れ
- bundleを使って、ひな形を作る
bundle gem gem_name --test
- libディレクトリの直下の.rbファイルに、moduleを定義し、中に目的のClass定義を書く。
- specディレクトリ直下に、spec_gem_name.rbファイルを作成し、テストを書く。
- gem_name.gemspecファイルを編集して、gemの内容等を英語で書く。編集内容はこんな感じ
- github用にREADME.mdも編集する。
- rake buildコマンドでビルドして
- rake installコマンドでローカル環境にインストールして動くか試す。
- Githubにpushする
- rake release でrubygems.orgに公開する
出来上がったGemは、rubygebs.org とGithubに上げてみました。