おんがえしの blog

作ったプログラムと調べた技術情報

Milkode0.7リリース - githubに公開されているソースコードを簡単に追加&検索

Milkode0.7をリリースしました。

'milk add git://..' に対応(自動pull付き)

gitレポジトリを直接'milk add'出来るようになりました。

$ milk add git://github.com/ongaeshi/milkode.git
git        : git://github.com/ongaeshi/milkode.git
Cloning into /home/ongaeshi/.milkode/packages/git/milkode...
remote: Counting objects: 4146, done.
remote: Compressing objects: 100% (1086/1086), done.
remote: Total 4146 (delta 2602), reused 4112 (delta 2569)
Receiving objects: 100% (4146/4146), 598.72 KiB | 225 KiB/s, done.
Resolving deltas: 100% (2602/2602), done.
package    : milkode

gitレポジトリから追加したパッケージは'milk update'と一緒に'git pull'を行います。

$ milk update milkode
Already up-to-date.       # 'git pull'も自動で行う
package    : milkode
result     : 1 packages, 90 records. (0.77sec)
*milkode*  : 18 packages, 6185 records in /home/ongaeshi/.milkode/db/milkode.db.

分かりやすく言うとgithubに公開されているソースコードは1コマンドで検索出来るようになりました!

# 有名なあのソースコードを検索したい!!
$ milk add git://github.com/mruby/mruby.git    # mruby
$ milk add git://github.com/ruby/ruby.git      # ruby
$ milk add git://github.com/rails/rails.git    # rails
.
.
# 最新版への更新も簡単
$ milk update --all

gmilkのgotolineモード(-g)で複数パスを渡せるように

余り知られていませんがgmilkの-gオプションはエラーが起きた箇所への直接ジャンプ等になかなか便利です。

$ gmilk -g lib/milkode/cli.rb:18 # lib/milkode/cli.rb:18行目を表示
lib/milkode/cli.rb:18:        db_dir = db_dir || Dbdir.default_dir

0.7から複数渡せるようになりました。

$ gmilk -g VERSION:1 bin/milk:9 bin/gmilk:9 lib/milkode/cdweb/app.rb:23
VERSION:1:0.7.0
bin/milk:9:Version = "0.7.0"
bin/gmilk:9:Version = "0.7.0"
lib/milkode/cdweb/app.rb:23:  @version = "0.7.0"

Emacsgrep-edit等と組み合わせると強力です。

WindowsでもRuby1.9に対応

WindowsでもRuby1.9でMilkodeが動くようになりました。

また、rroongaにパッチを送ってDevKit経由でもコンパイルが出来るようにしました。これによりWindowsでのrroongaの選択肢が

  • DevKitによる最新版
  • コンパイル済みの最新版
  • コンパイル済みのv1.1.0

に広がったことになります。私はDevKitでコンパイルしたものを使っています。
インストール手順はコチラをどうぞ。

Thorに対応

milkコマンドの内部で'Thor'というライブラリを使うようにしました。サブコマンド付きのコマンドラインツールを簡単に記述するためのgemです。 tomykairaさんのパッチによって実現されました。

Thorなかなか便利です。詳しくはこちらに書いたのでよかったらどうぞ。

これ以外にもtomykairaさんにはバグ修正等のたくさんのパッチを頂きました、感謝!

インストール

$ gem install milkode

詳しくはこちらをどうぞ - ダウンロード, Gems

リリースノート

  • milk
    • 'milk add git://..' に対応、update時に`git pull`するように
    • Thor を利用するように (thanks tomykaira)

  • gmilk
    • gotolineモード(-g)で、複数のパスを渡せるように
      • 例: gmilk -g VERSION:1 bin/milk:9 bin/gmilk:9 lib/milkode/cdweb/app.rb:23
    • Windows環境(SJIS) + Ruby1.9 でエンコーディングエラーが起きる問題を修正
  • milk web
    • カスタマイズしても部分がMilkodeのままになっていた問題を修正
    • 現在位置検索が正しく動いてない問題を修正
  • common
    • Package#options[:update_with_git_pull] を追加
    • Gemfile.lock を無視した (thanks tomykaira)
    • Remove dependency on rcov (thanks tomykaira)
    • 環境によってYAMLオブジェクトの構文が異なり、テストが落ちる可能性があるのを対策 (thanks tomykaira)

制作後記

git対応が思った以上に便利です。オープンソースを検索出来るようなサイトの作成が容易になりました。'milk add git://...'で追加して定期的に'milk update'するだけで最新版を追いかけることが可能です。デモサイトで公開しているパッケージもgit管理に切り替えました。

試しに検索してみたいソースコードがあれば、gitのURL(git://...)を教えてくれればデモサイトに追加します。

0.8ではパッケージの選択を簡単に行うための仕組みを作ろうと思います。お楽しみに!