✖
アレェ。なんで xcodebuild で plist が読めないよ! とか怒られるんだろう。ML のテストがとおらないのもこれのせいっぽいなぁ。
というかテストの書きかたがわるいよなぁ。せっかく Ruby でかいてるんだから require して new しまくったほうがいい予感だ。
xcodebuild がだめなのは別の問題だ。てか ML のテストはうちの環境だと再現しない?
テスト失敗したときのエラーメッセージがもうちょいマシになるはず……
アレェ。なんで xcodebuild で plist が読めないよ! とか怒られるんだろう。ML のテストがとおらないのもこれのせいっぽいなぁ。
というかテストの書きかたがわるいよなぁ。せっかく Ruby でかいてるんだから require して new しまくったほうがいい予感だ。
xcodebuild がだめなのは別の問題だ。てか ML のテストはうちの環境だと再現しない?
テスト失敗したときのエラーメッセージがもうちょいマシになるはず……
lproj を追加するときは nib を右クリックしてアレするみたいだけど、plist の中身を見てのなかなかよくわからない構造になっててどうしたらいいのかなぞい。
add のときに lproj だったら特別な処理が必要だよなぁ。lproj 内の nib スキャンしてほげほげとかやんないとだめかなぁ。滅多に追加しないから Xcode でやればいい気もする。
あと nib を dictionary(?) つかって更新するようにタスクを書いてあるけど、これ Rakefile に書いてしまうと Xcode でビルドしたときまずい。というか Xcode と IB だけで開発するとき (nibtool つかわない) って多言語化はどうやってるんだろう……
ってなんなんだろ。いま単純に消してしまっているけど、なんかたぶん設定が書かれるんだよなぁ。
FilesToMacroExpand だけ処理すればよくて、あとリネーム規則がかかれるっぽいけど、どっかに詳しい説明がないかなぁ
project.pbxproj は FilesToMacroExpand になくても強制的に変換されるっぽい
http://rubycocoa.svn.sourceforge.net/viewvc/rubycocoa?view=rev&revision=1838
@textfield.stringValue += "aaa"とか書けて楽だなぁ
なまえがまずい気がする。いいかなぁ。( http://rubycocoa.svn.sourceforge.net/viewvc/rubycocoa?view=rev&revision=1834 )
rubycocoa new Sample cd Sample rubycocoa create --action hello AppController vim AppController rubycocoa update English.lproj/MainMenu.nib AppController.rb open English.lproj/MainMenu.nib # instantiate / connect rake add AppController.rb rake # launch
create したら同時に add したほうが忘れなくていいかな。
rake create, rake update をつくって委譲するみたいな感じのほうがよさそう。rubycocoa ってながいのと補完が効かない (ruby, ruby1.9 が PATH にあるので一発ででてこない) のと、どっちつかったらいいか謎いのが不親切。
あーだめだなぁ。rake create -a hello AppController.rb とかやると、タスクが実行されるまえに -a を Invalid Option って判断して終了してしまう。
http://rubycocoa.svn.sourceforge.net/viewvc/rubycocoa?view=rev&revision=1836
if ["update", "add", "create"].include? ARGV[0]
# dupe rake
ARGV.map! {|a| a.sub(/^¥+/, "-") }
Rake.application[ARGV[0].to_sym].invoke
exit
endこんなん書いてしのいでみた。なんてキモいんだろう。これで rake から create したときは add も同時にされるようになり、add のときに Xcode project ファイルを指定する必要がなくなり、update のときもテンプレで最初から入ってる nib を更新するようになった。
rubycocoa new Sample
cd Sample
rake create +a hello AppController # ハイフンにすると rake が解釈しちゃうのでしかたなく……
vim AppController.rb
rake update AppController.rb
open English.lproj/MainMenu.nib
rakeupdate は updatenib とかいうタスク名にしないとわけわかんない気がする
rubycocoa 側の機能にするか、rake タスクにするかで悩むけれど、rake タスクにしとけば自分でいぢれるようになるので rubycocoa 側はそんなにいろんなことしなくていいかなぁと思う感じにしてみている。なので rake タスクも Rakefile 直書きでライブラリとかにしてない。
こんなのあったんだ……
できてるところまでチェックイン。インデントの設定とかを完全に忘れてた。2スペースインデントらしいのでそっちの流儀にあわせた (スペースインデントすることよりも、全体で統一されていないことのほうがまずい) newcocoa と rb_nibtool.rb 相当のことはできるはず、だけれど、テンプレの Rakefile を書いていないのでうまみがすくない。
テストを tests/ においたほうが良いっぽい。とりあえず既存のテストを AutoRunner するだけにしとこう。
一番簡単なテンプレにだけとりあえず Rakefile を追加。内容はほとんど [Rubycocoa-devel 906], [Rubycocoa-devel 907] のコピペ。
引数なし rake でビルドからアプリケーション起動までやるようにしてみて、ためしに Hello World を Console.app に表示するやつを作ってみたけど、Interface Builder で繋ぐ部分だけ GUI であとは CUI でできるようになって結構気持ちいい。Interface Builder でアクションとか設定するより Ruby 定義から update するのが便利だなぁ。
rubycocoa create AppController.rb とかやるとクラス定義ふくんだ (awakeFromNib とかを定義ずみの) スケルトンつくれるともうちょい楽かなぁ。
そういえば書いてない。commit log とは別に書かないといけないのかな。svn log すると ChangeLog 形式のログがでてくるけれど、これはコピペで svn と ChangeLog どっちも書いてるのかなぁ。あとあとさかのぼって書いてもいいのか謎
コピぺらしい。なるほど