1 名前:名称未設定 [2007/10/26(金) 13:43:31 ID:4KSSejwH0] RubyCocoa に関するスレです。 Ruby関連スレッドに書くべきか, Xcode,Cocoa関連スレッドに書くべきか、 迷わないように。 一応見ておく RubyCocoa Wiki limechat.net/rubycocoa/wiki/?FrontPage RubyCocoaでCocoa本 pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RubyCocoa%A4%C7Cocoa%CB%DC
2 名前:名称未設定 [2007/10/26(金) 13:59:46 ID:IAiLJerZO] 余裕で2ゲット! 〇∧〃 / > < \ でもそんなの関係ねぇ! でもそんなの関係ねぇ! ちょろすぎてつまんねー 〇∧〃 / > < \ でもそんなの関係ねぇ! でもそんなの関係ねぇ!
3 名前:名称未設定 [2007/10/26(金) 14:00:07 ID:4KSSejwH0] アプリケーションの終了方法で迷ったので,報告 (終了ボタンを押したらQuitする場合を想定) def myQuit(sender) p 'quit' exit end のときはのログです [Session started at] "quit" 2007-10-26 13:22:56.452 test[643] UIcontroller#myQuit: SystemExit: exit /Users/mini/Documents/RubyCocoa/test/build/Release/test.app/Contents/Resources/UIcontroller.rb:56:in `exit' /Users/mini/Documents/RubyCocoa/test/build/Release/test.app/Contents/Resources/UIcontroller.rb:56:in `myQuit' /Users/mini/Documents/RubyCocoa/test/build/Release/test.app/Contents/Resources/rb_main.rb:22:in `NSApplicationMain' /Users/mini/Documents/RubyCocoa/test/build/Release/test.app/Contents/Resources/rb_main.rb:22 reins はステータス 0 で終了しました。 def myQuit(sender) p 'quit' exit! end のときはのログです [Session started at 2007-10-26 13:24:48 +0900.] "quit" reins はステータス 1 で終了しました。
4 名前:名称未設定 [2007/10/26(金) 14:03:04 ID:4KSSejwH0] >>3 1番目はRuby的に標準的だと思いますが,変なログが出ちゃう。 2番目は終了ステータスが気になる。 それで,いろいろ調べまくったあげく3番目 def myQuit(sender) p 'quit' OSX::NSApplication.sharedApplication.terminate(self) end のときのログです [Session started at] "quit" reins はステータス 0 で終了しました。 3番目はOSX::NSApplication...がRubyらしくない。 理想はexitで何事もなく終了というのがいいのだけど
5 名前:名称未設定 mailto:sage [2007/10/27(土) 16:00:19 ID:G80shHQe0] >>3-4 3番目の方法にしてください。 Cocoaアプリケーション中ではNSApplicationが GUIアプリに必要ないろいろなことを管理してくれます。 rubyのexitを呼び出すと、NSApplicationの後片付けが正常に 行われずにアプリが終了してしまいます。
6 名前:名称未設定 [2007/10/27(土) 16:42:40 ID:Xu7LtmZg0] exit を上書きしちゃえばいいんじゃね?
7 名前:名称未設定 mailto:sage [2007/10/27(土) 20:16:04 ID:Yesj7zqy0] PyObjC もよろしく
8 名前:4 mailto:sage [2007/10/28(日) 10:17:07 ID:fq7gCK800] >>5 サンクスです。 Ruby/Tkを使わずにGUIをつける以上, 仕方のないトレードオフってところですかね。 ま,1行ですむから,知ってしまえばどうってことないのですが。 exitを上書きするメリットは極めて小さそうだし。
9 名前:名称未設定 [2007/10/28(日) 11:31:01 ID:pz+mf1Yr0] RubyCocoaでCoreDataを扱うサンプルはありますか? journal.mycom.co.jp/special/2005/cocoamvc/ を参考にして簡単なデータベースはできた。 問題は,データの追加・削除をいちいち手動でしなければならない。 データが大量だと事実上無理。 そこでRubyスクリプトで追加・削除・変更ができないものかと。 (例えばCSVデータを基にとか) 直接データベース部分(.xml)をいじるのは,ちょっとまずいかなという感じがして。
10 名前:名称未設定 mailto:sage [2007/10/28(日) 14:58:50 ID:8eIyZp5A0] >>9 iTunesのライブラリをCoreDataにつっこむサンプルを書いてみました。参考にどうぞ。 #!/usr/bin/ruby require 'osx/cocoa' include OSX require_framework 'CoreData' # input/outout files mom_path = 'tunes.mom' in_path = File.join(ENV["HOME"], 'Music/iTunes/iTunes Music Library.xml') out_path = File.join(Dir.pwd, 'tunes.xml') # prepare models and context mom = NSManagedObjectModel.alloc.initWithContentsOfURL(NSURL.fileURLWithPath(mom_path)) raise "cannot read model!" unless mom coordinator = NSPersistentStoreCoordinator.alloc.initWithManagedObjectModel(mom) coordinator.addPersistentStoreWithType_configuration_URL_options_error(NSXMLStoreType, nil, NSURL.fileURLWithPath(out_path), nil, nil) moc = NSManagedObjectContext.alloc.init moc.setPersistentStoreCoordinator(coordinator) # append itunes library items itunes_lib = NSDictionary.dictionaryWithContentsOfFile(in_path) itunes_lib['Tracks'].each do |track_id, track| entry = NSEntityDescription.insertNewObjectForEntityForName_inManagedObjectContext('Track', moc) entry.name = track['Name'] entry.album = track['Album'] end # save moc.commitEditing? && moc.save(nil)
11 名前:9 mailto:sage [2007/10/29(月) 10:19:06 ID:O6HtIOM10] >>10 どうもです。参考になりそうです。 あとは,Object-Cの _AppDelegete.m,_AppDelegate.hと Rubyスクリプトをプロジェクト内で,どうやって混在させるのか(できるのか) がんばってみます。
12 名前:9 mailto:sage [2007/10/29(月) 10:37:44 ID:O6HtIOM10] Cocoa-Ruby Core Data Application というプロジェクトに気付きました。 これで良さげです。どうも
13 名前:名称未設定 [2007/10/30(火) 15:28:52 ID:4yId97LW0] スクリプトでosx/cocoaをrequireしたとき(irbでも) ruby[740] WARNING: multiple libruby.dylib found: '/opt/local/lib/libruby.dylib' and '/usr/lib/libruby.1.dylib' ruby[740] RBCocoaInstallRubyThreadSchedulerHooks: warning: rb_set_cocoa_thread_hooks is linked from a different library (/usr/lib/libruby.1.dylib) than ruby_init (/opt/local/lib/libruby.dylib) のエラーが出ます。/usr/lib/libruby.1.dylibを単純に削除していいものか アドバイスお願いします。 ruby 1.8.6 (2007-03-13 patchlevel 0) [powerpc-darwin8.9.0] でMacPortsのインストールです。 なので/opt/local/bin/rubyにあります。 RubyCocoaはソースからだったかバイナリパッケージだったからか 失念しました。
14 名前:名称未設定 mailto:sage [2007/10/30(火) 16:00:06 ID:siax1pTW0] >1 なぜRubyCocoaなのか?PyObjCスレこそ建てるべきではなかったのか? PythonとRubyの言語戦争になるのかもしれないが、、、
15 名前:名称未設定 mailto:sage [2007/10/30(火) 17:18:36 ID:IVgA8VM10] PyObjを別に建てればいいだけの話だろ。一緒にしても良かったと思うが。
16 名前:名称未設定 mailto:sage [2007/10/30(火) 19:55:16 ID:3wNJSWwn0] どっちのスレも伸びなさそうだけど
17 名前:名称未設定 mailto:sage [2007/10/30(火) 20:08:54 ID:JMdRWnBC0] 複数の言語系が一つのスレの中で入り乱れるよりは、 RubyCocoaでのスレとして発展して欲しいと思うので< Rubyとpythonは別々にで一票。 Camel Bonesも欲しいとこだけど、需要がないのかな。 今回、cocoa環境に入らなかったのはちょっと残念。
18 名前:♪ mailto:sage [2007/10/30(火) 20:27:34 ID:WaDTJnBB0] オレは駱駝の骨でがんばってみる.
19 名前:名称未設定 mailto:sage [2007/10/31(水) 12:17:21 ID:ccssBaBL0] >>13 system の ruby 関連のファイルを消すのは危険。 インストーラーとかで内部で ruby を読んでたりするから ... >>17 ,18 CamelBones は単純に間に合わなかったと開発者がいってた気がする まあ Apple の開発者があまり興味を持ってなかったのかな ...
20 名前:13 [2007/10/31(水) 12:34:08 ID:b1nta+dw0] >>19 やっぱり危険ですよね。 ということはエラーを見て見ぬ振りをしてやり過ごすか ゼロからインストールし直すか。 MacPortsでRubyCocoaの最新がインストールできると いいのだけど,,,願わくば1.0
21 名前:名称未設定 mailto:sage [2007/10/31(水) 12:47:11 ID:ccssBaBL0] あきらめて leopard 買えば?
22 名前:名称未設定 mailto:sage [2007/10/31(水) 22:14:01 ID:N+fTnPlN0] >>13 エラーではなく警告なので、そのままでも動作にさほど支障はないと思います。 (ファイルの削除はやめたほうがよいかと...) 状況としては、RubyCocoaフレームワークがリンクしているlibrubyがおかしいようですね。 (1)macportsからrb-cocoa(0.12.0 Leopardと同じ)をインストールする (2)環境変数 LD_LIBRARY_PATHを設定して/opt/local/lib を最優先させるようにする (3)コマンドinstall_name_toolでRubyCocoaフレームワークのリンクしているlibrubyを変更する のいずれかで対応できると思います。 RubyCocoaのバージョンは ruby -rosx/cocoa -e 'puts OSX::RUBYCOCOA_VERSION' で確認できます。
23 名前:名称未設定 [2007/11/01(木) 12:31:13 ID:WKiLYeaB0] ib_actionを書かなくても,ib_outlet中に書いてあれば エラーになりません。 ib_actionは,不要なのでしょうか?単に読みやすさのためだけ? 例えば, class MyObject < OSX::NSObject include OSX ib_outlet :myField ib_action :myButton def myButton(sender) @myField.setStringValue("こんにちは") end end を class MyObject < OSX::NSObject include OSX ib_outlet :myField, :myButton def myButton(sender) @myField.setStringValue("こんにちは") end end としても同じになります。 ちなみに,逆のib_actionだけはエラーになります。
24 名前:名称未設定 mailto:sage [2007/11/01(木) 22:02:21 ID:1zjd+64a0] Ruby知らんのだけど、 Cocoa/Objective-Cにおいて、IBActionはvoidと等価。 だからRubyではib_actionなくてもいいんじゃない?
25 名前:名称未設定 mailto:sage [2007/11/02(金) 00:51:46 ID:XqXDUdmm0] >>23 ib_outletは指定した名前のインスタンス変数とsetterを作成するだけで、 rubyのattr_writerとまったく同じです。 ib_actionは ib_action do |sender| # perform action end のように、Rubyっぽく(?)ブロック記法で書くことができます。 defでメソッド定義するならば不要です。 ただ、ib_outletやib_actionの記法を使うとツールでnibファイルと同期したり ということができるようになるそうです。 使っていないので詳しくないのですが、Leopardのnibではこのツールが うまく動かないことがあると聞いています。
26 名前:名称未設定 [2007/11/02(金) 05:25:57 ID:oLkWuIlT0] ,-=;, {__7! 〔_ラレ ,、_,-‐y; おめでとう! `y"l rヲレへシ'" 2007年不具合OS!! iト-ヘ、 (_;フイ r;_/iレソ l 'ヽ ル || し ン′ ヽ ヽ レ' ||! >>ジョブズ 人_フ V ヽ, | |.| r‐-、=‐-、 _/ / ヽ ヽ, ト = }{i y=‐'~Y__ 〉 / / `i 、, ヽ, }- ルハjト'`_ント∠-r'" シ´ V `;| i∨  ̄~7 ン〈___/ V丶 | リ >, ( <_/ ,_ ヾ { ソ レ ン ;_ン'" ,r"<rn ゞミヽ ゝ、ゝ = 〃ソノ__/ / y'"J | \` ヽ rn, rfレ`ー-=-‐''~ ̄ /`7 `、| ヽ-'ヽ rJllル7 rnh; l´ ´'リ ,rn / r'ン==ト、!__ V ヽ 〉__ソ ヾヽ``ij'l 〉 /、,ハjjj し'l mhレ' /f" |リレ7,,m〉 | | | { rfjn ,;'V _ン',/ //〉r>,、__//リリ ト 〈 }'=‐' ソ 〉トii,_/ j .| i _,-;ゝ_ソ {' ' 'V V /'ハ~ ' ノヽ ヽ,;ヾ レ'⌒jー'-ン Λ'ー'~ヽ, / ! V;;;ゞ''~ ̄ヽ_〉_j,;| ヽ/レ_>' ラ';;/;-‐-{〉⌒|! / / 〉"
27 名前:名称未設定 [2007/11/02(金) 15:02:52 ID:YdX2mYeQ0] Core Dataで,各行(レコード?)のデータそれぞれの処理を考えてます。 @managedObjectContext.registeredObjectsとするとNSCFSetが返ってきます。 例えば返り値をArrayにしてイテレータで処理するみたいにイメージしているのですが, NSCFSetに含まれているはずの各行に応じたオブジェクトを,どうやって取得すればよいのかが解りません。 どうぞよろしく
28 名前:27 [2007/11/02(金) 15:46:15 ID:YdX2mYeQ0] palm.mods.jp/switch/2006/07/core_data.html を参考にしました。
29 名前:名称未設定 mailto:sage [2007/11/03(土) 01:36:04 ID:1PfPcUJH0] >>27 NSSet(NSCFSet)のallObjectsというメソッドで同じ内容のNSArrayを得ることができます。 NSArrayはRubyのArrayクラスと同じようにeachが使えるようになっているので @managedObjectContext.registeredObjects.allObjects do |entry| # 1件ずつの処理 end と書けます。
30 名前:29 mailto:sage [2007/11/03(土) 01:37:39 ID:1PfPcUJH0] ごめんなさい、each抜けてました @managedObjectContext.registeredObjects.allObjects.each do |entry| # 1件ずつの処理 end です。
31 名前:名称未設定 mailto:sage [2007/11/03(土) 15:07:48 ID:mzlMzrSe0] PerlObjCBridge ってのがはいってるのをみつけたけど、 これって Tiger のときからあった? man ページの日付は 2007-2-9 だから Tiger のはじめからはついてなかったのかな? スレ違いだったら失礼
32 名前:名称未設定 [2007/11/03(土) 16:04:23 ID:8o/9SHHU0] >>31 www.apple.com/jp/macosx/features/300.html#unix スクリプティングブリッジと関係あるんじゃないですか? なので,多分Leopardからだと思う。 AppleScriptの代わりにRubyOSAが使えるっていう噂はどうなったのだろう? 標準で使えるなら,Rubyで他のアプリを操作できるものを作れるってことだから, かなり楽になるかも
33 名前:名称未設定 mailto:sage [2007/11/03(土) 17:11:29 ID:x0ahP+Zd0] この辺か。 developer.apple.com/documentation/ScriptingAutomation/Reference/ScriptingBridgeFramework/index.html 難しすぎてよー分からん。
34 名前:名称未設定 mailto:sage [2007/11/04(日) 01:58:09 ID:hRwgY5Fp0] そのページよりは developer.apple.com/documentation/Cocoa/Conceptual/RubyPythonCocoa/index.html のほうがよみやすいとおもう developer.apple.com/documentation/Cocoa/Conceptual/RubyPythonCocoa/Articles/UsingScriptingBridge.html#//apple_ref/doc/uid/TP40005424 のあたりにサンプルスクリプトがのってるよ
35 名前:名称未設定 [2007/11/05(月) 10:16:35 ID:1SVboA+P0] >>32 33,34のページを読むと,Scripting BridgeとRubyOSAとは一応別。 Scripting BridgeはRubyCocoaの方法で,使えるみたい。 ま,結局Objective-Cの書式をちょっと細工しなければならないので, むちゃくちゃ長いメソッド名になって,読みづらいけど, それでも,Leopardであれば、そのまんま使えるって感じ。 RubyOSAはライブラリをインスコする必要あり。 書式的にはよりRubyっぽいかな。 でもLeoprd以降は,あえてインスコしてRubyOSAを使うメリットが下がったような... RubyCocoaと同じ作法だということで,RubyのScripting Bridgeはこのスレでもいいんじゃない? PerlObjCBridgeはどこぞでやってくれ
36 名前:名称未設定 [2007/11/05(月) 15:08:43 ID:7kihdIt/0] >>30 ありがとうございます。レスが遅くなりがちですが, なにぶん,初心者で消化するのに時間がかかってるもので, ご勘弁を^^; さらに質問です。 テーブル(NSTableView?)で選択されてるレコードに処理を施したいと考えてます (例えば選択されたNSManagedObjectについてputs obj.valueForKey(:name).to_sみたいに) NSArrayControllerクラスを扱えばよいはずですが,MSManagedObjectContextに応じた,インスタンスをどう作ればよいのか解りません。(ていうかこの理解のでいいのだろうか?) どうぞよろしく。
37 名前:名称未設定 mailto:sage [2007/11/06(火) 20:37:35 ID:VT9fW9NU0] >>36 もうテーブルビューに内容を表示しているのであれば NSManagedObjectContext->NSArrayController->NSTableViewという順にデータが 渡されるようにInterface Builder上で構成していると思います。 そのNSArrayControllerをアウトレットなどでコードから見えるようにすれば よいのではないでしょうか。
38 名前:名称未設定 [2007/11/12(月) 17:06:37 ID:xE1AYe8N0] Rubyで作れるのはアプリケーションだけ? コマンドラインのスタンダードツールとか 何かの(ファイルメーカとか?)プラグインとかはいまのところ Rubyでは無理? インタプリタだから仕方ないのかもしれないけど
39 名前:名称未設定 [2007/11/13(火) 13:51:57 ID:FqkHEGEu0] edotprintstacktrace.blogspot.com/2007/07/kvc.html を参考にしてるのですが, NSTableのインスペクタを表示できないのです。何かこつがありますか? どうしてもNSTableViewかNSScrollViewしか表示できないんです。 NSTableViewのインスペクタ中にも"Controller Content Parameters" というのはないです。 (Action Invocation, Avalability, Font, Table Content, Parametarsしかないです)
40 名前:名称未設定 mailto:sage [2007/11/13(火) 21:21:16 ID:8AvKxq5C0] >>38 コマンドラインツールだったら、普通にRubyで作れるんじゃないか? プラグインに関してはよく分からない。
41 名前:名称未設定 mailto:sage [2007/11/13(火) 22:35:43 ID:xpZPKGhq0] >>38 コマンドラインツールはLeopardならサンプルが /Developer/Examples/Ruby/RubyCocoa/Scripts に入っています。期待されているものとちょっとちがうような気もしますが.. プラグインはCocoa/Objective-Cで書けるものなら作ることができると思います。 ただ、以下の点に注意が必要です。 ・スレッド関係のパッチの当たったRubyでないと不安定になります。 LeopardのRubyではパッチ適用済みです。 ・Ruby 1.8はプロセスで複数のインタプリタを持つことができません。 複数のRubyCocoaプラグインがあるときクラス名など名前空間に注意してください。 以前にTextMateのプラグインを作りたいという要望があって、バンドルが作成できるよう 対応したはずです。
42 名前:名称未設定 mailto:sage [2007/11/13(火) 22:48:19 ID:xpZPKGhq0] >>39 NSTableというクラスはありません。 リンク先ではおそらくNSTableViewのことを指していると思います。 Controller Content ParametersはNSArrayControllerのインスペクタにあります。
43 名前:名称未設定 [2007/11/17(土) 13:49:09 ID:2mus8QxE0] RubyCocoaに関する初心者向けの情報が少なすぎ... Rubyは解るけどObj-Cは解らん,でもCocoaを使いたい っていう人向け、がないんだよね。 Obj-C解ってるよ,へぇRubyでも使えるようになったんだ,じゃ使ってみようかな, っていう人向け、はそこそこあるんだけど。
44 名前:名称未設定 mailto:sage [2007/11/17(土) 16:44:57 ID:boskS6O+0] だってRubyCocoaってそういう人たち向けに作られたものだし。
45 名前:名称未設定 mailto:sage [2007/11/17(土) 18:38:02 ID:rMOsv6rN0] >>43 Objective-C で解説された Cocoa の本を買って、 Objective-C の部分を適宜 Ruby に脳内変換すればいいだけ。 pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RubyCocoa%A4%C7Cocoa%CB%DC
46 名前:名称未設定 mailto:sage [2007/11/18(日) 06:38:44 ID:xb1Ii9wH0] >>43 Ruby わかってるひとは Obj-C の文法わかるまでに一時間かかりません とくに Leopard で GC on にすれば。 正直普通に Obj-C を勉強するほうがはやいとおもわれ。 そのほうが文献おおいし。 あとはふつうに ADC にある Obj-C で Cocoa のチュートリアルとか読めば ok
47 名前:名称未設定 mailto:sage [2007/11/18(日) 06:43:54 ID:xb1Ii9wH0] というか、>>43 がきにしているのは、言語としての Obj-C そのものというより、 Cocoa の作法のことなのかという気がしてきた。 target/action とか、IBOutlet とか、delegate とかそういうことか。 たしかにそういう概念を RubyCocoa つかって解説したのはみたことないなぁ ... う〜む。 まあ Obj-C 怖くないからやってみろ。C 系といっても malloc いらないし。
48 名前:名称未設定 mailto:sage [2007/11/18(日) 13:44:45 ID:htLN6FJS0] Cでよく躓くところってmallocじゃなくね?
49 名前:名称未設定 mailto:sage [2007/11/18(日) 14:07:41 ID:N7BrJO440] もともとRubyでずーっと仕事やってきたけど、Objective-C楽しいよw
50 名前:名称未設定 mailto:sage [2007/11/18(日) 14:18:22 ID:xb1Ii9wH0] >>48 Ruby しかしらないひとにとって何が問題なんだろう? ポインタ演算とか?Obj-C はまあオブジェクトはポインタだけど、 C 的なポインタ演算は滅多にしないよね。 NSString は unicode で char* みたいな問題もないし ...
51 名前:名称未設定 mailto:sage [2007/11/19(月) 07:11:19 ID:OGCWE6a+O] 試しにコード書いてみたら、 全然Rubyらしくないコードになってワロタw MacでやるならObj-Cが一番ってことだな。
52 名前:名称未設定 [2007/11/20(火) 00:05:20 ID:1gnj21oG0] Obj-Cがベストだね。 でも,>>43 の気持ちもわからなくもない。 PythonやRubyでも使えるようにしたのは, 裾野を広げる意図があった筈。 PやRを使うのに,Obj-Cを習得しなければならないなら, 効率は悪いっしょ?P使いやR使いが即戦力になるってのは, Obj-Cの教育費を払わなくてていいからね。 ツーことでRubyCocoa版HMDTみたいなのがあっても, いいんじゃね
53 名前:名称未設定 mailto:sage [2007/11/20(火) 00:11:05 ID:MoGJif+l0] 質問があります。 私はRubyもObjective-Cも素人です。 Image I/Oの機能を使ってみようとしたのですが、 require_frameworkの指定の仕方がうまくないのか 思ったように使えません。 恐らく、Objective-Cの方の #import <ImageIO/ImageIO.h> に対応する何かがあるのだと思うのですが、 探しきれませんでした。 「プロジェクトに追加」でApplicationServices.frameworkを追加して、 OSX.require_framework 'ApplicationServices' OSX.require_framework 'ImageIO' などを指定してみましたが、うまくありませんでした。 どのような宣言をすれば良いのでしょうか。 (oc_import.rbをCoreGraphicsの例に習って(内容を理解しきれず)書き換えて p KCGImageStatusComplete で値が出る所までは来ましたが、これはスマートじゃないよなぁと…。)
54 名前:名称未設定 [2007/11/20(火) 11:25:48 ID:uQFO4pIX0] バインディングでお尋ね NSArrayController InspecterのBindingsで Controller Content Parameters中のSelectionIndexes をバインドしたいのです が、Bindチェックボックスがイネーブルになりません。 Bind toにはAppDelegateを選択してます。Xcodeがはじめから用意したクラス。 ためしに新たにインスタンスMyObjectを作成してもみましたが,だめでした。 Shared User Defaultsだとバインドできるのですが,全然目的が違うので,代用になりません。 何か,見落としがあるのでしょうか?ご教示願います。
55 名前:名称未設定 [2007/11/20(火) 15:47:15 ID:gY7LRHQR0] Xcode 2.5(OSX 10.4.11)をインストール後 RubyCocoa-0.12.0-OSX10.4universal.dmgをダブルクリックしてインストールしましたが 「ファイル」→「新規プロジェクト」でCocoa-Ruby Applicationが出てきません。 なにか他に手順が必要なのでしょうか?
56 名前:名称未設定 [2007/11/20(火) 22:46:58 ID:eb7SDfk00] XCode 3.0でRubyCocoaのサンプルアプリを作って実行しようとしたのですが、動きません。 「ビルドして進行」を押すと、下に Simple App exited with status 1. The Debugger is still running.Use 'Restart' to debug again. とでできます。 コンソールを見ると /Library/Frameworks/RubyCocoa.framework/Resources/ruby/osx/objc/oc_wrapper.rb:17:in `ocm_send': AppController#ib:action: - methodSignature is nil. などというメッセージが出てきます。 同じ現象になった人いますか?
57 名前:名称未設定 mailto:sage [2007/11/20(火) 23:14:18 ID:orruJM3j0] >>56 /System/Library…でなく、/Library…なところをみると TigerでRubyCocoaを入れて そのままLeopardに移行してきたとかですかね。 (私の時のメッセージは覚えてませんが、 というかコンソール見てなかった) 私の場合はTigerで入れた奴が悪さしてるぽくて (恐らく/Library/Frameworks…な奴ら)、 取り敢えずそれを破棄したら LeopardのXcode3.0で動作がまともになったことはあります。 が、どういう破棄の仕方が正しいのか良く分かりません。
58 名前:53 mailto:sage [2007/11/21(水) 00:25:21 ID:3rNKU+Zk0] ImageI/Oを使う件ですが、 oc_import.rbとにらめっこして OSX::NSBundle.bundleWithPath, OSX.load_bridge_support_signatures 辺りを使う事によって p KCGImageStatusComplete で0を吐き出す所まではたどり着けました。 もちっと精進してみますです。
59 名前:56 mailto:sage [2007/11/22(木) 00:04:01 ID:w5uE4B2n0] >57さん ビンゴです。TigerでRubyCocoaを入れてLeopardにアップグレードしました。 /Library/Frameworks/Ruby.frameworkをリネームしたら、うまく動作しました。 ありがとうございました。
60 名前:名称未設定 mailto:sage [2007/11/22(木) 00:34:47 ID:uOZy8n7N0] >>55 Xcode 2.5でテンプレートの場所が変わったようです。 /Library/Application Support/Apple/Developer Tools/Project Templates/Application/Cocoa-Ruby Application などがプロジェクトテンプレートとしてインストールされます。 それらのファイルを /Library/Application Support/Developer/2.5/Xcode/Project Templates/Application/Cocoa-Ruby Application などと移動すれば利用できると思います。
61 名前:60 mailto:sage [2007/11/23(金) 11:30:05 ID:YqFwUebX0] >>55 Xcode2.5用のプロジェクトテンプレートのインストーラを用意しました。 お手数ですが、これもダウンロードしてインストールしてください。 新規プロジェクトでRubyCocoaのものを選択できるようになるはずです。 sourceforge.net/project/showfiles.php?group_id=44114&package_id=36578&release_id=532169 のRubyCocoa-0.12.0-Xcode2.5-Templates.dmgです。
62 名前:名称未設定 mailto:sage [2007/11/25(日) 10:28:57 ID:C31mkAz20] >>61 ありがとうございます。 無事確認できました。
63 名前:名称未設定 [2007/11/26(月) 23:54:31 ID:+os7QjeM0] 0.13.0に上がったみたいよ はやくgemsでアップデートできるようになるといいなぁ
64 名前:名称未設定 mailto:sage [2007/12/13(木) 23:58:29 ID:5V/68Lyl0] Python勉強中の俺が颯爽と保守
65 名前:名称未設定 mailto:sage [2007/12/18(火) 20:08:30 ID:n9tTjHhr0] 質問です。 PyObjC 1.3.7 for Python 2.3を現行のTigerにインストールしました。 IDEはXcodeを使用しています。 新規プロジェクトからPyObjC Applicationを選択し、 アプリケーションをビルドすると、実行形式がPPCとなってしまいます。 実行形式がUniversal Binaryとなるように修正するにはどうすればよいでしょうか? 出力されたMy Application.appのInfo.plistを見ると py2appの項目がバージョン0.2.1になっていますが、これが何か関係あるのかどうか・・・ よろしくおねがいいいたします。
66 名前:名称未設定 mailto:sage [2007/12/18(火) 23:23:47 ID:UJxqUidi0] >>65 がスレ違いなのは>>64 のせい
67 名前:名称未設定 mailto:sage [2007/12/18(火) 23:34:35 ID:8K1Hiphd0] >>65 じゃあ責任を取って回答するか ttp://alienghic.livejournal.com/340908.html
68 名前:名称未設定 [2007/12/19(水) 13:04:39 ID:tljKMRq20] Pythonで唯一羨ましいのは、パイという響きだけだね。
69 名前:名称未設定 mailto:sage [2007/12/19(水) 20:32:19 ID:mGgB9Fs20] >>65 どうもありがとうございました。 >>66 PyObjCはマイナーなのでRubyCocoa陣営の仲間に入れてやってはもらえませぬか たぶん専用スレ建てても保たないだろうと思います。
70 名前:名称未設定 mailto:sage [2007/12/19(水) 22:52:50 ID:SHi/TgGR0] 昔からPythonがどうにも好きになれない俺としては…まぁ良いけど ここに書いても Python な人は来ないと思うぞ。
71 名前:名称未設定 mailto:sage [2007/12/20(木) 10:45:16 ID:9C5JmvhT0] 江島健太郎 / Kenn's Clairvoyance MacにRailsをゼロからインストールする一番簡単な方法 japan.cnet.com/blog/kenn/2007/12/19/entry_25003169 Leopardには初めからRails入ってるけど、それに触れないのはなぜ?
72 名前:名称未設定 mailto:sage [2007/12/20(木) 11:30:04 ID:FbrUaxRs0] 本人に言えよw
73 名前:名称未設定 [2007/12/20(木) 21:38:21 ID:aGMEnGl20] >>江島健太郎 / Kenn's Clairvoyance この程度の人にでも、記事が書けるのか?!
74 名前:名称未設定 mailto:sage [2007/12/20(木) 22:32:41 ID:zTvXEaKn0] 公開してからあわてて書き換えたみたいだなー UPDATE がいろんなところに。。。
75 名前:名称未設定 [2007/12/24(月) 16:26:54 ID:31ZcAf380] >>73 そりゃ、だれだって記事くらい書けるよ。 おまえには無理だろうけどなw
76 名前:名称未設定 [2007/12/25(火) 18:43:44 ID:vLQk/yyw0] 記事っていうかブログっていう体裁になってるけどね
77 名前:名称未設定 [2007/12/28(金) 00:29:10 ID:dtTo/BSh0] >>73 >この程度の人にでも、記事が書けるのか?! 修辞疑問文。意味は「この程度の人は、記事を書く べきでナイ」 cf. Who knows? ==> Nobody knows.
78 名前:名称未設定 mailto:sage [2007/12/28(金) 07:12:33 ID:ncpRqPb6O] 羞恥age
79 名前:名称未設定 mailto:sage [2007/12/28(金) 07:13:34 ID:ncpRqPb6O] まぁ年末年始にはよくあることだ
80 名前:名称未設定 mailto:sage [2007/12/28(金) 08:01:40 ID:sb5vhpU10] XcodeをつかってPyObjCのアプリケーションのビルドと自動実行までできた〜(^o^)/ 新規カスタム実行可能ファイルの設定がミソだった。
81 名前:名称未設定 mailto:sage [2007/12/29(土) 07:43:03 ID:Vazt03qm0] うんうんよかったね みんな初めはそうだよ
82 名前:名称未設定 [2007/12/29(土) 11:30:18 ID:nRUO5dQz0] >>80 おそらく,似たような初心者がゴマンといるから, そのミソとやらを書いておくと,このスレも健全に延びて行くぞよ。
83 名前:80 mailto:sage [2007/12/29(土) 14:03:36 ID:2P2X6WmH0] >>82 Objective-Cアプリの様に、ビルド&ランを一発で行える環境がほしかったんです。 新規カスタム実行可能ファイルメニューから My PyObjC.xcodeproj/build/Debug/My PyObjC.app のようにビルドされたアプリを選択すれば、自動実行できました。
84 名前:名称未設定 mailto:sage [2008/01/07(月) 11:08:05 ID:6p5pFbow0] 保守
85 名前:名称未設定 mailto:sage [2008/01/14(月) 16:13:39 ID:kxCMZM750] NSFormのフィールド数を増やすのを調べるだけで2時間かかったワロタ optionキーで延ばすのかよwww
86 名前:名称未設定 mailto:sage [2008/01/15(火) 02:01:41 ID:nkNypgn80] mac はオプションキーおしながらなにかするといろいろ 変な機能があったりするので 無意味に option おしてみるのがオヌヌメ
87 名前:名称未設定 [2008/01/15(火) 22:19:02 ID:Si5XKA8H0] >>
88 名前:名称未設定 mailto:sage [2008/01/26(土) 08:42:33 ID:EROT7D7p0] RubyCocoaでMac版Winnyを作れそうですね。pynyからソース引っ張ってきて。
89 名前:名称未設定 mailto:sage [2008/01/26(土) 09:28:32 ID:42x0AZNA0] pyny というなら PyObjC のほうではないかと ... というかプロトコルが割れてるんだから別にどんなプログラミング言語でも 好きなようにつくればいいのではと思われる
90 名前:名称未設定 mailto:sage [2008/02/05(火) 07:12:55 ID:V59gPv4tO] Io保守Language
91 名前:名称未設定 mailto:sage [2008/02/06(水) 20:59:41 ID:68HZpCuTO] ドキュメントにPagesフォーマットがあってワロタ
92 名前:名称未設定 [2008/02/10(日) 16:41:54 ID:2GbGFtPY0] Java一筋永谷園だったおいらからすればRubyCocoaは別世界です C言語で挫折したせいもあって、Obj-CはCの中でも簡単とはいえ、ちょっと引いてしまう
93 名前:名称未設定 mailto:sage [2008/02/10(日) 21:30:37 ID:H10pNU8z0] 「Cの中でも」って表現はエンジニアとしてやばい気がする
94 名前:名称未設定 mailto:sage [2008/02/10(日) 23:36:07 ID:Ttqe3MTD0] そもそも C言語で挫折云々という話にエンジニアも何もないような。
95 名前:名称未設定 mailto:sage [2008/02/11(月) 00:01:59 ID:9y1algFN0] スレ違い・・・
96 名前:名称未設定 [2008/02/17(日) 15:34:58 ID:cXaOS69U0] limechat.net/rubycocoa/tutorial/ ここみてるんだがTigerでXcode2.5なんだが、ライブラリパレットにあたるのがどれかわからない。 ぐぐってもみつからなかったようなので教えてくれ。先にすすまない。
97 名前:名称未設定 mailto:sage [2008/02/17(日) 22:49:08 ID:URAWBCpB0] 要するに、AppControllerのインスタンスをnibに追加したいってことでいいのかな? 手元の環境をすべてLeopardにしちゃったから手元で確認できないんだけど、確か 以下のような感じだったかと。 1. InterfaceBuilderの.nibを表示しているウィンドウ上で、Classesタブを選択 2. クラスのリストが表示されるのでNSObjectを選択 3. メニューバーのClassesからSubclass NSObjectを選択 4. 新しくサブクラスが作られるのでクラス名を適当に変更 5. outletやactionが必要なら適当に追加 6. メニューバーのClassesからCreate Files for XXX(自分で付けたクラス名)を選択 7. メニューバーのClassesからInstantiate XXX(自分で付けたクラス名)を選択 このあたりは2.5と3.0で大きく変わっちゃったところだね。 手元で確認できないうえに、2.5でRubyCocoa使ったこと無いから嘘書いてたらご めん。
98 名前:名称未設定 [2008/02/29(金) 15:03:31 ID:dMubfKRY0] アップグレード時のトラブルです OS 10.4.11/Xcode2.5 でRubyCocoa-0.13.2-OSX10.4universal.dmg をダウンロードし、 アップデートでインストールしました(以前のヴァージョンは忘れました) Xcode起動後新規プロジェクトを作ろうとすると、 ruby関連の物が一覧に出てきません。 インストーラpkgの中を見てみて、 postflightという物がインストール作業をしている物でしょうか? ここには srcfile = File.join('/Library/Ruby/Site/1.8/universal-darwin9.0', 'rubycocoa.bundle') とあって、実際Archive.pax.gzを展開した中身もuniversal-darwin9.0の様です。 darwin9.0は10.5だった様な気がするので、このあたりが原因でしょうか? 正常にインストールされたなら、なにがどこにあるべきか、 など分かる方いらっしゃいましたら御願いします。
99 名前:名称未設定 mailto:sage [2008/02/29(金) 15:12:56 ID:dMubfKRY0] 追記irbでsitearchdirはこうなりました。 irb(main):001:0> require 'rbconfig' => true irb(main):002:0> p Config::CONFIG['sitearchdir'] "/usr/lib/ruby/site_ruby/1.8/powerpc-darwin8.0" => nil ファイルは一応それらしい所にあるようです。 % ls -al /usr/lib/ruby/site_ruby/1.8/powerpc-darwin8.0/ total 80 drwxr-xr-x 3 root wheel 102 Feb 28 22:12 . drwxr-xr-x 8 root wheel 272 Feb 28 22:08 .. -r-xr-xr-x 2 root admin 37308 Feb 14 03:40 rubycocoa.bundle % ls -la /usr/lib/libruby* -rwxr-xr-x 1 root admin 2022544 Aug 10 2007 /usr/lib/libruby-with-thread-hooks.1.dylib lrwxr-xr-x 1 root wheel 42 Jan 11 14:52 /usr/lib/libruby.1.dylib -> /usr/lib/libruby-with-thread-hooks.1.dylib -rwxr-xr-x 1 root wheel 740408 Jan 11 14:47 /usr/lib/libruby.1.dylib.original lrwxr-xr-x 1 root wheel 15 Dec 9 2006 /usr/lib/libruby.dylib -> libruby.1.dylib
100 名前:名称未設定 mailto:sage [2008/02/29(金) 20:39:43 ID:4/6yJ8Dp0] >>98 プロジェクトテンプレートがまちがった場所にインストールされています。 /Library/Application Support/Developer/3.0 の3.0を2.5に変更してください。 もしくは、0.13.0を一度インストールしてから0.13.2で上書きしてください。 Archive.bomでdarwin9.0にインストールされたrubycocoa.bundleを postflightでdarwin8.0に移動します。 ですから、rubycocoa.bundleは正しい場所にインストールされているはずです。
101 名前:98 mailto:sage [2008/03/01(土) 12:18:59 ID:H9eXm3CC0] >>100 ありがとうございます 空爆後の処理だけしか見てなかったという事ですね。 名前を2.5にしたらひとまず選択肢に現れてくれました。これから勉強です。 >>96 同じ所で前回つまずいて投げたのを思い出した。 今回もう一度挑戦するにあたり、もう少し調べてみた。 rubyだけでGUIアプリが作れるかなと思ったけど、GUIアプリ作った事無い初心者かつ10.4という 状態ではさすがに少しはobjective-Cもかじらないとチュートリアルさえ理解できないみたい。 アップルの日本語チュートリアルは既にxcode3.0になってしまっているので、 homepage.mac.com/nsekine/SYW/SYWSoft/learnCocoa/bexcoder.html ここのBecome An Xcoder がまだ2.5(?)対応のうちに素早くダウンロードする事をおすすめ。
102 名前:名称未設定 mailto:sage [2008/03/03(月) 09:09:02 ID:22NAIdX+0] >>97 を参考に10.4/Xcode2.5でのチュートリアル補足 1. InterfaceBuilderの.nibを表示しているウィンドウ上で、Classesタブを選択 2. クラスのリストが表示されるのでNSObjectを選択 3. メニューバーのClassesからSubclass NSObjectを選択 4. 新しくサブクラスが作られるのでクラス名を適当に変更(チュートリアルに従うならAppControllerとシル) 5. outletやactionが必要なら適当に追加 5-1. MainMenu.nibウインドウClassesタブを選択。AppControllerを選んだ状態でインスペクタを表示する (コマンド+シフト+i) 5-2. インスペクタ窓の一番上のポップアップメニューでAttributesを選択 5-3. OutletとActionというのがあるのでOutoletを選択し、下のAddをクリック。 5-4. アウトレットの名前をwindowとする。 6と7は順番がどうあるべきか分からなかったので、このように 7. メニューバーのClassesからInstantiate XXX(自分で付けたクラス名:ここではAppController)を選択 6-1. そうするとMainMenu.nibウインドウがInstancesタブに変わるので、もう一度Classesを選び直す 6-2. AppControllerが選ばれている事を確認し、 7. Create Files for XXX(自分で付けたクラス名:ここではAppController)を選択 7-1. なんかどこに保存するか聞かれるが、とりあえずそのままChooseしておいたらいいと思う。 8. MainMenu.nibウインドウのInstancesタブに変更してリンクを貼る作業 8-1. ctrlを押しながらAppControllerからwindowにドラッグ 8-2. インスペクタが出てきて、さっき設定したoutletsが選べるようになっているので、それをConnect 確認方法は知らない。
103 名前:名称未設定 mailto:sage [2008/03/03(月) 09:25:00 ID:22NAIdX+0] >>102 続き コントローラクラスの編集は、Xcodeに戻って、AppController.rbを選んで行う。 (AppController.hやAppController.mではない)
104 名前:名称未設定 mailto:sage [2008/03/03(月) 14:22:14 ID:22NAIdX+0] >>102 Create Filesがいらないステップなのか?無くても動いた。 あと、QuartzComposer のデモを動かしてみる、の項は 10.4ではqtzファイルの場所が違うので黒い窓が出るだけで動かない。 "/Developer/Examples/Quartz Composer/" + "Compositions/Graphic Animations/Cube Replicator.qtz" を "/Developer/Examples/Quartz Composer/Motion Graphics Compositions/Cube Replicator.qtz" にしたら動いた。
105 名前:100 mailto:sage [2008/03/04(火) 00:00:21 ID:u69cuqPq0] 10.4用の修正版インストーラ用意しました(人柱用)。2.1MB。 試した人がいたらレポートいただけるとうれしいです。 問題が見つからなければ、これでリリースします。 ttp://rubycocoa.sourceforge.net/files/RubyCocoa-0.13.2.1-OSX10.4universal.dmg
106 名前:名称未設定 mailto:sage [2008/03/04(火) 16:58:56 ID:4iRHsMRO0] >>104 チュートリアル終了(googleサーチ以外) 色々初心者がいくつか思った事などとりとめも無く。 計算機のselectedItem.titleはtitleOfSelectedItem でも大丈夫だった。 @xText.stringValue.to_s.to_fが@xText.stringValue.to_fでも大丈夫だった。 インクリメンタルサーチでちょっと詰まった "テキストフィールドから AppController に Ctrl+ドラッグして、delegate アウトレットで" が、なぜアウトレットなのか。 はじめは計算機の要領でアクションにdelegateを作ってそれにつないだら、 一応動くけど、エラーも出てきた。 Could not connect the action delegate: to target of class AppController など。 どうもinterfacebuilderの作業がおかしいようだと、付けたり外したり。 件の文章に気がついてもタイポではないかと思ってアウトレットの方は見てなかった。 結局delegateとは何ぞやとググったら、なぜかこれはアウトレットでつなぐ物らしいと。 かつ、はじめから用意されているではないかと。 初心者にはこの辺が難しいのかもしれない。 アップルのチュートリアルもぼちぼち見ていこうかな。 >>105 PowerBookG4/OS 10.4/Xcode2.5/RubyCocoa-0.13.2の状態からインストールしました。 新規プロジェクトから適当に作ったもの、およびサンプルのMiniBrowserをビルドしてみましたが、 特に問題は見当たらないようです。
107 名前:100 mailto:sage [2008/03/06(木) 22:14:44 ID:cUB9Ocp/0] >>105 ありがとうございます。0.13.2.1リリースしました。
108 名前:100 mailto:sage [2008/03/06(木) 22:15:10 ID:cUB9Ocp/0] おおっと >>106 ね。
109 名前:名称未設定 mailto:sage [2008/03/07(金) 07:22:48 ID:AnQeBV7G0] チュートリアルのサイトも最新版に合わせて更新してほしいな 古すぎてそのままやっても動かん。。。
110 名前:名称未設定 mailto:sage [2008/03/08(土) 00:43:31 ID:RSFfiKEf0] Objective-CベースのRuby実装「MacRuby」が登場 journal.mycom.co.jp/news/2008/02/29/021/index.html Leopard以降はこっちが主流になっちゃうのかな
111 名前:名称未設定 [2008/03/08(土) 03:48:22 ID:HzyekJdN0] >>110 Leopardに標準搭載されることはないと思う。 もし搭載されるなら10.6からだろう。 でも、これが標準搭載されたら、もう、MacRuby以外で 書く理由がまったくなくなるよな。すごすぎるよ。
112 名前:名称未設定 mailto:sage [2008/03/08(土) 10:19:23 ID:C91wOQWN0] >>111 なぜ「MacRuby以外で書く理由がまったくなくなる」のかを このヘタレめにお教え下さい。
113 名前:名称未設定 mailto:sage [2008/03/08(土) 12:23:07 ID:BHvX3Mle0] >>109 なにっ、あれでも古いのか? こっちは新しすぎて苦労した。 チュートリアル書く人も、 新しい、いや古過ぎる、と言われて大変だな。 どこでどうなったとか書いてくれたら、 チュートリアル各人とか、 ほかに同様に詰まった人とかも助かるかもしれない。 まあ、めんどくさいというのなら無理に勧めないが。
114 名前:名称未設定 mailto:sage [2008/03/09(日) 10:05:24 ID:8yztwNJP0] >>111 速度面ではObjective-CやC++を使うメリットはまだまだあると思うが。
115 名前:名称未設定 mailto:sage [2008/03/09(日) 10:34:31 ID:qByZEO6i0] 111 は単に RubyCocoa と MacRuby を比較したのでは?
116 名前:名称未設定 mailto:sage [2008/03/09(日) 11:23:17 ID:8yztwNJP0] そっか、それなら納得。
117 名前:111 [2008/03/10(月) 05:56:24 ID:BzdH52Du0] >>114 低レベル言語(ってObjective-Cを呼ぶのはかなり無理があるが)で書くことによって 速度を稼げるタイプのコードがどのくらいあり、それがどれくらい重要かによるよな。 フレームワークの中はネイティブコードなので、MacRubyを使うデメリットは Rubyコードの実行とRubyからの呼び出しのオーバーヘッドがどのくらい負担になるか で、おれは多くのアプリでそれは誤差の範囲だろうと思って>>111 を書いた。 LimeChatという素晴らしい例もあるしね。あれは一部Objective-Cで書いてあるけど、 速度を稼ぐためではなく、単にRubyCocoaで書けないからだと思うので、MacRuby が標準搭載されたら、全部MacRuby化もあるんじゃないか。 MacRuby以降は、どうしても速度が必要な計算アルゴリズムだけをObjecte-Cで書いて バンドルして使うってのが当たり前になるんじゃないか、と。
118 名前:名称未設定 mailto:sage [2008/03/10(月) 09:49:58 ID:PooR7Pns0] 正規表現が標準搭載でないことを除けば、 Obj-C で充分書きやすいとおもうのは僕だけ? 情けないながら Ruby つかいこなしてないけど。
119 名前:名称未設定 mailto:sage [2008/03/10(月) 11:18:58 ID:PwZtS3JJ0] 書きやすいかどうかってのは人によるという結論しか導けないと思うけど、 パフォーマンスを追求するハイエンドのアプリを作るプロとしての意見なら、 なにかこれって言う物があるかもしれないね。
120 名前:名称未設定 mailto:sage [2008/03/10(月) 23:32:46 ID:vOd+TKMH0] 好きなほうを使えばいいんじゃないでしょうか。今までのように混ぜることもできるし。 パフォーマンスに関して言えば、int/float/structのような非idについては オブジェクト変換のオーバーヘッドはそこそこ残るはず。BridgeSupportもまだ残る。 でも、117が言うように多くのアプリでは問題にはならないと思う。 10.6に搭載されるにはそれより前にRuby1.9.1がリリースされていないと 難しいんじゃないかなあ。
121 名前:名称未設定 mailto:sage [2008/03/11(火) 20:59:37 ID:BfH1dqPu0] ObjectiveC++が最高よ ただNSValueにC++のクラスが入れられないのが不満かな
122 名前:名称未設定 mailto:sage [2008/03/12(水) 23:04:04 ID:/i3s+ldu0] Pythonからもなんかキター! ttp://www.moongift.jp/2008/03/frontpython/ ttp://code.google.com/p/frontpython/ 微妙… さっき知ったんだけど、iTunesStoreのTechnologyに Sowtware How-Toなんてのがあんのね。 ScreenCastとかもあるし結構勉強になりそう。
123 名前:名称未設定 mailto:sage [2008/04/05(土) 23:47:55 ID:wRC4Vu8S0] mdimporterをRubyで書けたら便利だなーと思って探してたら、 こんなページを発見。 ttp://www.yoshidam.net/diary/200505.html ソースを見てみたけど、要するにCにRubyインタプリタを 組み込むときと同じ手順になるわけですね。 ただ、定型的なコードとはいえ、やっぱりごちゃごちゃ してしまう。MacRubyでも基本的には同じことなんだろうか?
124 名前:名称未設定 mailto:sage [2008/04/22(火) 23:24:14 ID:dmGLgzUY0] 保守
125 名前:名称未設定 [2008/06/07(土) 09:06:51 ID:nS4tuohSO] 昨日、初めてRubyCocoaやってみたけど手軽さに感動しました。 ただ、やってみて気になったこと。 1.命名規約 メソッドや変数名の命名はRuby流の単語間アンスコ区切りではなく Cocoa流の単語間大文字の方がよさそう? 2.PureRuby+Cocoaバインディング PureRubyで書かれたモデルをCocoaバインディングしようと思ったのですが NSObjectを継承していないとバインディングできないので それ用のアクセサを持つクラスを別に定義。 NSObjectを継承するため、元クラスが継承できずに1個1個アクセサを定義。 コントローラから値を取得、設定するよりもコーディング量が多くなってしまった。 (アクセサだけど) →Cocoaバインディングで楽したいならPureRubyは諦めるべき? 間違ってるよとか、こうすれば良いよとか アドバイスがあれば是非ともお願いします。
126 名前:名称未設定 mailto:sage [2008/06/07(土) 22:47:32 ID:C/yRQREs0] そんなあなたにMacRuby
127 名前:名称未設定 mailto:sage [2008/06/07(土) 22:59:05 ID:0WlrN7Iu0] >>125 1. どっちでもいいんじゃないでしょうか。 自分はInterface Builderで利用するアクションのメソッドなどはCocoaスタイルにして ほかは気分次第にしています。 けっきょくRubyとCocoaの両方のクラスが混在する以上は、両方のスタイルのメソッドが コード中に出てくるのは仕方ないとあきらめ気味。 2. NSKeyValueBindingCreationとNSKeyValueObservingを実装すれば Pure Rubyのクラスでも動作すると思います。が、ちょっと手がかかりますね。 アクセサについてはNSObject継承のラッパクラスで、Rubyの委譲モジュール(forwardable)を 使うと自分でアクセサを定義するよりはスマートに書けるんじゃないかと思います。 ttp://jp.rubyist.net/magazine/?0012-BundledLibraries 思うだけで試していないので、あとでやってみて報告しますね。
128 名前:125 mailto:sage [2008/06/08(日) 00:42:21 ID:cj+xwaaJO] >>126 MacRubyが凄いらしいというのは聞いたことあるのですが、CocoaもRubyも今週触り始めたばかりなもので。 余裕があったら試してみます。 >>127 1.命名規約 PureRubyなソースはRubyスタイル、それ以外はCocoaスタイルでいくことにしました。 2.Cocoaバインディング(PureRubyラッパー) ラッパークラスでforwardableのdef_deldgatorを使ってアクセサを定義してみました。ここでメソッド名もCocoaスタイルからRubyスタイルへ変換しています。 setValue_forKeyでビューに値も表示されたのでCocoaバインディングも動いているようです。 但し、PureRubyでの計算結果をsetValue_forKeyで値を設定し直す必要がありましたが。 ありがとうございます!
129 名前:名称未設定 mailto:sage [2008/06/08(日) 00:47:17 ID:xdlwDwXd0] RubyCocoa って ruby 1.8.x が対象なんだよな? 1.9.x系でCocoa使いたかったらMacRuby使えという理解で良いんだよね?
130 名前:125 mailto:sage [2008/06/08(日) 01:41:18 ID:cj+xwaaJO] MacRuby見てきました。 かなり良さげですね。 今からやるとしたらRubyCocoaは捨ててMacRubyの方がオススメですか? RubyやCocoaと戯れて遊ぶのが目的なので、仕事ではないです。 Ruby1.9やMacRubyの完成度ってどんなものなんでしょうか。(ていうか以前Ruby1.9がコンパイルできずにMacPortsへ逃げたクチです) 今から試しに入れてみます。
131 名前:125 mailto:sage [2008/06/08(日) 12:08:43 ID:cj+xwaaJO] MacRuby0.2触ってみました。 MacRuby自体がRuby1.9.0をベースに作られているのでRuby1.9.0の インストールは不要。 XcodeにMacRuby Applicationが追加され、サンプルも付いてます。 RubyCocoaで作ったスクリプトをMacRuby用に書き換えて Cocoaバインディングを試そうとしたのですが。 OajectController.contentにアクセサを定義したモデルを設定しても 何故かアクセサが無視され、一番最後に初期化したインスタンス変数の 内部を捜しにいってしまう…。 現時点ではまだRubyCocoa使った方がよさそうですかね。
132 名前:127 mailto:sage [2008/06/11(水) 22:24:50 ID:xnYHbiB20] >>128 あー、そりゃあsetValue_forKeyが必要ですね。考え至らずすみません。
133 名前:名称未設定 mailto:sage [2008/06/12(木) 00:12:26 ID:MQ7uPTHt0] システム環境設定のスピーチ内の 声を選ぶときのリスト内の男性などの薄い色で書かれているものは Interface Buillder のライブラリのどれを使っているのでしょうか
134 名前:名称未設定 mailto:sage [2008/06/14(土) 20:46:51 ID:dNycpHBz0] 1.所属するNSMenuをsetAutoenablesItems:YESしてNSMenuItemにsetEnabled:NOする。 2.NSMenuValidationで当該NSMenuItemオブジェクトについてNOを返す。
135 名前:名称未設定 mailto:sage [2008/06/14(土) 20:47:26 ID:dNycpHBz0] 間違えた。 1.所属するNSMenuをsetAutoenablesItems:NOしてNSMenuItemにsetEnabled:NOする。 でも2.推奨。
136 名前:名称未設定 mailto:sage [2008/06/14(土) 21:00:42 ID:2EUD2BOn0] >>134-135 回答ありがとうございます。 早速実装してみました。 また別の質問なのですが NSSpeechSynthesizer のsetRateで話す速度を設定したいのですが 環境設定のスピーチで設定できるしゃべる速度はどの範囲ですか? よろしくお願いします。
137 名前:名称未設定 mailto:sage [2008/06/14(土) 21:47:50 ID:m7rgqH2K0] >>136 それくらいは自分で試せば良いんじゃないの?
138 名前:名称未設定 [2008/06/20(金) 01:40:36 ID:OPI2O2si0] 次 pc11.2ch.net/test/read.cgi/mac/1187582395/85
139 名前:名称未設定 [2008/07/06(日) 02:31:53 ID:qyBoLZXU0] sage 禁止
140 名前:名称未設定 [2008/07/06(日) 11:56:21 ID:gQSlcM460] age
141 名前:名称未設定 [2008/07/16(水) 07:33:14 ID:I7YB0jxQ0] age
142 名前:名称未設定 [2008/07/28(月) 23:23:21 ID:NL8Skhv90] age
143 名前:名称未設定 mailto:age [2008/08/02(土) 12:22:41 ID:kC204Xtv0] RubyCocoaは使ってはいけない MacRubyの登場でCocoa-Javaの香りがしてきた なるべくObjectiveCに慣れて、次に備えるべし
144 名前:名称未設定 mailto:sage [2008/08/02(土) 23:07:19 ID:c8ErBqo10] RubyOSAの質問していいですか? Mac OS X Leopard (10.5.4) に、 sudo gem install rubyosa で RubyOSA 0.4.0 をインストールしましたが、 適当なスクリプトを実行すると Bus Error で落ちます。 たとえば、 irb -rubygems >> require 'rbosa' => true >> itunes = OSA.app('iTunes') /Library/Ruby/Gems/1.8/gems/rubyosa-0.4.0/lib/rbosa.rb:530: [BUG] Bus Error ruby 1.8.6 (2008-03-03) [universal-darwin9.0] Abort trap ググったらlibxml-ruby関連でも同じように Bus Error が起こるという 情報を見つけたので、sudo gem update して全部の gem をアップデート してみましたが、症状は変わりません。何かご存知の方いらっしゃいましたら ご教示いただければ幸いです。
145 名前:名称未設定 mailto:sage [2008/08/06(水) 01:19:42 ID:uf+eVgCO0] >>144 再現しました(10.5.4 intel)。 libxml-rubyを古いもの(0.3.8.4)にしたら動きました。 とりあえず利用するだけなら sudo gem install libxml-ruby --version 0.3.8.4で古いlibxml-rubyを入れておいて lib/rbosa.rbのrequireしているところをgem 'xml/libxml', '= 0.3.8.4'に書きかえればよいかと。
146 名前:144 mailto:sage [2008/08/07(木) 07:26:19 ID:0mECmV+F0] >>145 ありがとうございます。RubyOSAが使えるようになりました。 Excel 2008の操作に使えそうです。
147 名前:名称未設定 [2008/08/13(水) 19:17:35 ID:2ggRDotU0] Cocoaで音声ファイルを再生するアプリケーションを作成したいのですが どのようにすれば良いのでしょうか 簡易トーン・ダイヤラーの様な物を作りたいので携帯のボタンを押したときの 様にピッピッとボタンを押すたびに再生できる物が良いのですが。
148 名前:名称未設定 [2008/08/14(木) 00:53:57 ID:I3mEPq/b0] NS::Soundと言うのが見つかりました ありがとうございました。
149 名前:名称未設定 mailto:sage [2008/08/26(火) 00:49:11 ID:z5yBxHke0] 保守 PyObjCプロジェクトで、IBで作ったアクションを.pyにD&Dすると、 RubyCocoa用のメソッドに展開された。ヒドイヨハゲ。
150 名前:名称未設定 [2008/08/28(木) 04:10:01 ID:r5ZlX/2+0] もし既出だったらすいません お絵描きチャットをしたいのですが いっつも回線が切断しましたという表示が出て始めることすら出来ません エチャできてる人いたらどうしたらいいか等おねがいします
151 名前:150 mailto:sage [2008/08/28(木) 04:24:27 ID:bPoAiUfmO] スミマセン。スレタイ読んでませんでした。 ちょうど回線も切断されているので、吊ってきます。 ちなみに使っているブラウザもURLもOSが何かすらも分かりません。
152 名前:名称未設定 mailto:sage [2008/08/28(木) 11:29:23 ID:1s0ch5sa0] むしろ、どうやってここにたどり着いたか興味がある。
153 名前:名称未設定 mailto:sage [2008/08/28(木) 15:32:09 ID:CbY6oV4O0] 非常に趣深い。 >>152 の言う通りなぜここに来たか知りたい。 OSとブラウザがわからないのはある意味理解できるけど、 その流れでURLがわからないってどういうこと? っていうかこれらの用語がわかる人間は普通何を使ってるかわかるよねw と、盛大につられてみました。
154 名前:名称未設定 [2008/09/01(月) 22:15:54 ID:+kfzKA2m0] NSData.writeToFileのパラメータの指定方法がわかりません。 writeToFile:options:error:をwriteToFile_opstions_errorと書き換えて filepath = OSX::NSString.stringWithString('/Users/homedir/test.pdf') mask = Object.new errorPtr = String.new data.writeToFile_options_error(filepath, mask, errorPtr) エラー /System/Library/Frameworks/RubyCocoa.framework/Resources/ruby/osx/objc/oc_wrapper.rb:50:in `ocm_send': Cannot convert the argument #2 as '^@' to Objective-C (OSX::OCDataConvException) from /System/Library/Frameworks/RubyCocoa.framework/Resources/ruby/osx/objc/oc_wrapper.rb:50:in `method_missing' from test.rb:23 としました。 www.oomori.com/cocoafw/Foundation/NSData/writeToFile.html を参考にしたのですが, options: (unsigned int) maskの意味が解説を読んでもわかりません。 (「詳細は"Constants"にあります」とかいてるけど,その"Constants"ってどこ?状態) optionsとerroはどのように指定すればいいですか?
155 名前:名称未設定 mailto:sage [2008/09/01(月) 23:29:47 ID:Si43t95v0] >>154 filepath = '/Users/homedir/test.pdf' mask = OSX::NSAtomicWrite result, error = data.writeToFile_options_error(filepath, mask) resultとerrorには 正常終了なら true, nil エラーなら false, NSErrorオブジェクト が返ってきます。 optionsの意味はXcodeについてるCocoaのマニュアルでも読んでくれ
156 名前:154 [2008/09/02(火) 21:17:30 ID:B1hHzE6L0] >>155 、サンクスです。 別の部分で意図した結果が得られません。環境は10.5 #!/usr/bin/ruby require 'osx/cocoa' OSX.require_framework "WebKit" app = OSX::NSApplication.sharedApplication() app.setDelegate(OSX::NSObject.alloc.init) window = OSX::NSWindow.alloc.initWithContentRect_styleMask_backing_defer([100, 100, 300, 300], 15, 2, 0) window.orderFrontRegardless() webview = OSX::WebView.alloc.initWithFrame(window.contentView.frame) window.contentView.addSubview(webview) url = OSX::NSURL.alloc.initWithString('www.apple.com ') request = OSX::NSURLRequest.alloc.initWithURL(url) webview.mainFrame.loadRequest(request) data = webview.dataWithPDFInsideRect([100, 100, 300, 300]) filepath = File.expand_path('~/.Trash/test.pdf') data.writeToFile_atomically(filepath, true) #app.run #ページをとってきてるか確認用 アップルのサイトをフェッチしてそれをpdfで保存したい,との意図で上のスクリプトを作った のだが、test.pdfをプレビューでみても真っ白け,,,になります。 homepage3.nifty.com/kimuraw/d/2004/04.html#19 も試したけど,やっぱり真っ白け,,, NSViewのdataWithPDFInsideRectは何か挙動がかわったのでしょうか?
157 名前:名称未設定 mailto:sage [2008/09/02(火) 22:14:20 ID:agEX2R6R0] ・NSApplicationをrunしてイベントループまわしてやらないとウインドウは描画されません。 ・WebViewの読み込みは非同期なのでdelegateなどで終了を通知してもらうか、てきとうな秒数待つようにする必要があります。 ・RubyCocoaのサンプルにdarkroom.rbという、ウェブをPNGとして保存するスクリプトがあるので参考にどうぞ。
158 名前:154 [2008/09/02(火) 23:52:49 ID:B1hHzE6L0] >>157 、サンクスです。 が、参考にしようとしたdarkroom.rbがエラーです。 2008-09-02 23:48:36.099 ruby[3309:10b] *** Assertion failure in -[WebHTMLView lockFocus], /SourceCache/AppKit/AppKit-949.33/AppKit.subproj/NSView.m:4755 2008-09-02 23:48:36.101 ruby[3309:10b] ActiveReload::DarkRoom::Processor#webView_didFinishLoadForFrame: OSX::OCException: NSInternalInconsistencyException - -[WebHTMLView(0x5d2660) lockFocus] failed with window=0x5bf860, windowNumber=-1, [self isHiddenOrHasHiddenAncestor]=0 /System/Library/Frameworks/RubyCocoa.framework/Resources/ruby/osx/objc/oc_wrapper.rb:50:in `ocm_send' /System/Library/Frameworks/RubyCocoa.framework/Resources/ruby/osx/objc/oc_wrapper.rb:50:in `method_missing' ./darkroom.rb:99:in `capture_and_save' ./darkroom.rb:95:in `webView_didFinishLoadForFrame' /System/Library/Frameworks/RubyCocoa.framework/Resources/ruby/osx/objc/oc_wrapper.rb:50:in `ocm_send' /System/Library/Frameworks/RubyCocoa.framework/Resources/ruby/osx/objc/oc_wrapper.rb:50:in `method_missing' ./darkroom.rb:62:in `shoot' ./darkroom.rb:52:in `initialize' ./darkroom.rb:109:in `new' ./darkroom.rb:109 /System/Library/Frameworks/RubyCocoa.framework/Resources/ruby/osx/objc/oc_wrapper.rb:51: [BUG] Segmentation fault ruby 1.8.6 (2008-03-03) [universal-darwin9.0] <NSWindow: 0x5bf860>Abort trap
159 名前:名称未設定 mailto:sage [2008/09/03(水) 00:27:31 ID:hS6p5Zfo0] >>158 Appleのは直ってないのか。。。 修正済みのがリポジトリにあるのでそちらを使ってみてください。 rubycocoa.svn.sourceforge.net/viewvc/rubycocoa/trunk/src/sample/Scripts/darkroom.rb?revision=2115&view=markup
160 名前:名称未設定 mailto:age [2008/09/10(水) 07:18:05 ID:KwINyegI0] MacRuby 0.3
161 名前:名称未設定 mailto:sage [2008/09/10(水) 22:26:50 ID:n+/OMfLx0] >>160 macirbするとエラーが出るんですが…。 ググってみると、LANG=C macirb で大丈夫みたいだけど。
162 名前:名称未設定 [2008/10/08(水) 08:03:24 ID:jCJuvFef0] age
163 名前:名称未設定 mailto:sage [2008/10/20(月) 01:18:51 ID:j6j9nf8z0] ADC—Developing Cocoa Applications Using MacRuby ttp://developer.apple.com/mac/articles/scriptingautomation/cocoaappswithmacruby.html
164 名前:名称未設定 mailto:sage [2008/11/26(水) 05:43:26 ID:CKOAGFoqi] 保守
165 名前:名称未設定 mailto:sage [2008/11/30(日) 03:40:24 ID:Nmq4wNui0] ageなきゃ落ちるよ
166 名前:名称未設定 [2008/11/30(日) 06:34:32 ID:ylAtvlHZi] age
167 名前:名称未設定 [2008/12/04(木) 20:16:13 ID:cmdrcErwO] >>166 ? ∧∧ (´・ω) _|⊃/(___ / ヽ_(____/  ̄ ̄ ̄ ̄ ̄ ̄ ̄
168 名前:名称未設定 [2009/01/16(金) 21:51:15 ID:abaDZpaE0] 保守
169 名前:にゃあ mailto:sage [2009/01/31(土) 06:59:06 ID:vTQa9G9W0] いまだ!169ゲットォォォォ!!! オマンコベロベロナメダーチンチンナメテー  ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (´´ ∧∧ (´⌒(´ ↑⊂(゚ー゚*)≡≡≡(´⌒;;;≡≡≡ ⊆⊂´ ̄ ⊂ソ (´⌒(´⌒;;  ̄ ̄ ̄ ズザーーーーーッ
170 名前:名称未設定 [2009/03/05(木) 09:50:42 ID:jN1vhbjs0] rubi-!
171 名前:名称未設定 [2009/03/07(土) 15:17:10 ID:MSy2d4tM0] 開発環境のおともとしてCocoaReplを使いたいと思うのですが 起動したときにまいかい以前入力した物がでていて困ります これはどのようにすれば良いのでよすか? すこし気になるのが試しにRubyCocoaのサイトからダウンロードしてきた Exampleファイルから起動したときでもでてきます。これはもしかして自動的に なにかのファイルをひらいているのでしょうか? よろしくおねがいします
172 名前:名称未設定 mailto:sage [2009/03/07(土) 18:27:48 ID:rzw/mIwv0] ホームディレクトリの.cocoarepl_scratch.rbをひらいてるのでしょう。 ReplController.rb の awakeFromNib の下から2行目にある load_scratch の行を削除するかコメントアウトせよ。 ついでに、いちいち保存されるのがいやなら show_result の最初の store_scratch も削除しとけ
173 名前:171 mailto:sage [2009/03/07(土) 20:04:33 ID:MSy2d4tM0] ありがとう御座います。!!
174 名前:名称未設定 mailto:sage [2009/03/07(土) 21:34:41 ID:MSy2d4tM0] RubyCocoaでDockのアイコンをクリックしたら: アプリケーションが隠れていたら表示、ウィンドウが閉じていたら新規作成とするには どのようにすれば良いのでしょうか? blog.cocoa-study.com/?day=20050701 こちらのページを参考にいかのような物をウィンドウ表示を担当するコントローラクラスに かいてみたのですがnibファイルを開いても反映されません ib_action :applicationOpenUntitledFil do |sender| @window.NSApplication.makeKeyAndOrderFront(nil) end よろしくおねがいします。
175 名前:174 mailto:sage [2009/03/07(土) 21:46:44 ID:MSy2d4tM0] クリーニングしてみた所 反映はされました、しかしInterfaceBuilderでクラスからひっぱってWindowにつなげても これは選択肢にでませんでした。どのようにすれば良いのかよろしくおねがいします。
176 名前:名称未設定 mailto:sage [2009/03/08(日) 01:43:30 ID:rBsRDVjQ0] >>174 とりあえず ...UntitledFile ね。最後の e を忘れている。 返り値も ib_action じゃなくて bool 。 あと、これはアクションメソッドじゃないので、 クラスのアウトレット @window に対応する Window を IB で つなげばいいだけです。 ドックのアイコンをクリックしたら、Cocoa のシステムが 自動的に app delegate の applicationOpenUntitledFile: を呼びます。だからあなたはそれを実装するだけです。
177 名前:名称未設定 mailto:age [2009/03/09(月) 22:53:48 ID:28xfUO3i0] MacRuby 0.4 ttp://www.macruby.org/post/macruby-04/
178 名前:名称未設定 mailto:sage [2009/03/26(木) 07:00:35 ID:DZj12hiH0] class AClass < OSX::NSObject def AClass.initialize puts "+(void)initialize" end end AClass.initializeはランタイム側から 呼んでもらえないんでしょうか?
179 名前:名称未設定 mailto:sage [2009/03/26(木) 12:26:18 ID:UUCg7QO00] >>178 うん、呼ばれません。なぜかというと AClassクラス自体はObjective-Cのオブ ジェクトじゃないからです。そのかわりに class AClass < OSX::NSObject puts "AClassをロード中" end こういうふうに書いとくと、このコードがRubyにロードされたときに実行され るので、initialize にまあまあ近いタイミングで実行されるよ。
180 名前:名称未設定 mailto:sage [2009/03/26(木) 16:00:36 ID:ZtaxedWsi] >>178 MacRubyだと、Rubyのオブジェクトは全部Objective-Cのオブジェクトなので、そのinitializeも呼ばれるはず
181 名前:名称未設定 mailto:sage [2009/03/26(木) 19:09:12 ID:DZj12hiH0] >>179 , 180 なるほど、私の勉強不足でしたが納得です。 にしてもRubyCocoa楽しいですね。 ありがとうございました。