昨日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詳しくないのでよく分からない,,,
何か分かったら教えて頂けるとありがたいです!