RubyMotionはrake
でBuildしてSimulatorが立ち上がります.
その後,Terminalはインタラクティブシェルになっていて,そこで行った操作がそのままSimulatorの方に反映されます.
ところが,そのインタラクティブシェルは1行しか打てなくて,そこで色々やろうとすると苦しいものがあります.
そこで登場するのがmotion-liveです.
これを導入すると,LiveScratchpad.rb
というファイルを編集してセーブしたタイミングでインタラクティブシェルに引き渡されて実行されます.
使い方
まず,motion-liveをインストールします.
$ gem install motion-live
Fetching: colored-1.2.gem (100%)
Fetching: rb-fsevent-0.9.1.gem (100%)
Fetching: motion-live-0.1.gem (100%)
Successfully installed colored-1.2
Successfully installed rb-fsevent-0.9.1
Successfully installed motion-live-0.1
3 gems installed
Installing ri documentation for colored-1.2...
Installing ri documentation for rb-fsevent-0.9.1...
Installing ri documentation for motion-live-0.1...
Installing RDoc documentation for colored-1.2...
Installing RDoc documentation for rb-fsevent-0.9.1...
Installing RDoc documentation for motion-live-0.1...
その後,プロジェクトのRakefileを編集します.
(既存のmotion crate
したのがないなら,motion create <hoge>
しましょう)
$ more Rakefile
$:.unshift("/Library/RubyMotion/lib")
require 'motion/project'
require 'motion-live'
Motion::Project::App.setup do |app|
# Use `rake config' to see complete project settings.
app.name = 'hoge'
end
変更点はrequire 'motion-live'
を追加しただけです.
あとは,実行します.
$ rake live
するとSimulatorが立ち上がり,ディレクトリにLiveScratchpad.rb
が出来上がるので,編集保存するとインタラクティブシェルで実行されます.
利点
motion-liveを使った時の利点です.
複数行のコードをインタラクティブシェルに読ませれる
これによって,何回も使う処理をclassとかmethodにして使うとかいうのも簡単にかけます.
自分の好きなエディタが使える
インタラクティブシェルではTerminalの上で書くので,補完も効かなければ,キーバインディングも違って色々不便です.
しかし,motion-liveを使うと,LiveScratchpad.rb
というファイルを編集出来ればいいのです.
つまり,EmacsやVimも使えますし,補完を効かせれるTextMateやRedcarを使うことも出来ます. 前の記事で書いたようにSublime Text2も補完を効かせれるようになったので,僕はSublime Text2を使ってます.
app = UIApplication.sharedApplication
delegate = app.delegate
repl(delegate)
@window
みたいなのを書く時でも,すごい楽なわけです.
セットアップも有効にするのもRakefileに1行追加ですし,簡単で積極的に使って行きたいですね!