Kouhei Sutou
kou****@clear*****
2014年 8月 9日 (土) 12:01:11 JST
須藤です。 In <CAH9Y0y49uGkWgq68vN3qGXpbNKOMx17t4p=CpKTP****@mail*****> "[groonga-dev,02587] Re: Groongaのbuildpackについて" on Sat, 9 Aug 2014 11:20:36 +0900, 杉本涼 <sugry****@gmail*****> wrote: > buildpack-groongaのheroku用のビルド最新バージョン検出↓の改良が終わりました。 > > https://github.com/groonga/heroku-buildpack-groonga/blob/master/bin/compile ありがとうございます! 動きそうな気がしますね! > なんか変なところがあったら、アドバイスしてもらえるとうれしいです。 はい! latest_version = releases[0]["tag_name"] の変数名ないんですが、これはlatest_tag_nameがいいと思います。 latest_version.sub(/\Av/, "") したもの(タグ名の先頭のvを抜いたもの)がバージョンなので、 タグ名を入れる変数名にversionと付けてしまうと混乱の原因にな りそうです。 あと、 begin releases[0]["assets"][0]["name"] latest_version = releases[0]["tag_name"] rescue latest_version = releases[1]["tag_name"] end で例外を使って「最新リリースにHeroku用ビルドがあるか」をチェッ クしていますが、パッと見ではわかりにくいかなぁと思いました。 たぶん、これ、Heroku用ビルドがないときは releases[0]["assets"][0] がnilになって releases[0]["assets"][0]["name"] が nil["name"] 相当になってエラーってことですよね? Heroku用ビルドがあるかどうかは明示的にコードにした方がわかり やすくなると思いました。たとえば、こんな感じです。 「heroku-groonga-」始まりのファイルがあればHeroku用ビルドが あるリリースというコードのつもりです。 latest_heroku_available_release = releases.find do |release| assets = release["assets"] || [] assets.any? do |asset| asset["name"].start_with?("heroku-groonga-") end end どうでしょうか!? あ、あと、この変更前の状態だと動かないよーという報告がきてい るので、 https://github.com/groonga/heroku-buildpack-groonga/issues/2 動くようにしたよーとコメントして閉じておいてもらえるとうれし いです! たとえ動かないよという報告でも、やっていることに対してフィー ドバックがあるといいですね! -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> Groongaベースの全文検索システムを総合サポート: http://groonga.org/ja/support/ パッチ採用 - プログラミングが楽しい人向けの採用プロセス: http://www.clear-code.com/recruitment/ コードリーダー育成支援 - 自然とリーダブルコードを書くチームへ: http://www.clear-code.com/services/code-reader/