昨日Using Bundler With Rubymotionという記事が投稿されて,話題になっていたので早速ためしてみた.
記事の内容的には,色々requireしたりgem installしたりするのめんどくさいよね!それbundle使えばできるよ!てな感じでした.
やってみよう!
何はともあれ,bundlerを入れます.
$ gem install bundler
Rakefileのrequire 'motion/project'の下辺りに
require 'bundler'
Bundler.require
を追加しておきます.
あとは,Gemfileを作成して
$ cat > Gemfile
source :rubygems
gem "rake"
gem "motion-testflight"
とかして保存しておきます.あとは,
$ bundle install
と実行すれば,自動的にgemを入れてくれます.
$ rake testflight
とか打てば,Rakefileにrequire 'motion-testflight' とか書かなくてもOKです!
罠
上記のはmotion-testflightでやっているのは訳があって,
motion-testflightは実はgem installだけでは完結していなくて,
TestFlight SDKをダウンロードしてvendor/testflightに入れないとダメなんですねー.残念です.
ここらへんどうすればいいんだろう,,,?僕はRuby畑の人ではないので,どうすればいいのかよく分からないです.Gemfileにダウンロードするスクリプトとか書けばいいの?(書けるの?)
One more thing
んで,そのbundleの記事に反応していた中で
せっかく使うんだったら bundle install –path vendor/bundle とかにして、システムにgemを入れないようにした方がいいかも?
— Satoshi Ebisawaさん (@satococoa) 6月 5, 2012
という意見がありましたので,やってみました.
$ bundle install --path vendor/bundle
とやると,vendor/bundle以下にruby/<version>/gemsやらなんやら色んなファイルが出来てました.
これでシステムグローバルに入れるのではなくて,そのProject内にgemsをインストールしているわけですね.
その後は,いつもどおりrakeでいいのかな?と思ったのですが,
$ rake
Could not find rake-0.9.2.2 in any of the sources
Run `bundle install` to install missing gems.
とかいう警告が出てました. しかし,rake自体は成功している模様.よく分からない.
$ bundle exec rake
とやる必要があるのかな?と思ったのですが,同じメッセージが出てました. ここらへんはbundler詳しくないのでよく分からない,,,
何か分かったら教えて頂けるとありがたいです!