RubyCocoa 初心者質問【Leopardバンドル記念】

このエントリーをはてなブックマークに追加
1名称未設定
RubyCocoa に関するスレです。

Ruby関連スレッドに書くべきか,
Xcode,Cocoa関連スレッドに書くべきか、
迷わないように。

一応見ておく
RubyCocoa Wiki
http://limechat.net/rubycocoa/wiki/?FrontPage
RubyCocoaでCocoa本
http://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名称未設定: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名称未設定:2007/10/27(土) 20:16:04 ID:Yesj7zqy0
PyObjC もよろしく
84: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を扱うサンプルはありますか?

http://journal.mycom.co.jp/special/2005/cocoamvc/
を参考にして簡単なデータベースはできた。

問題は,データの追加・削除をいちいち手動でしなければならない。
データが大量だと事実上無理。

そこでRubyスクリプトで追加・削除・変更ができないものかと。
(例えばCSVデータを基にとか)

直接データベース部分(.xml)をいじるのは,ちょっとまずいかなという感じがして。

10名称未設定: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)

119:2007/10/29(月) 10:19:06 ID:O6HtIOM10
>>10
どうもです。参考になりそうです。
あとは,Object-Cの _AppDelegete.m,_AppDelegate.hと
Rubyスクリプトをプロジェクト内で,どうやって混在させるのか(できるのか)
がんばってみます。
129: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名称未設定:2007/10/30(火) 16:00:06 ID:siax1pTW0
>1
なぜRubyCocoaなのか?PyObjCスレこそ建てるべきではなかったのか?
PythonとRubyの言語戦争になるのかもしれないが、、、
15名称未設定:2007/10/30(火) 17:18:36 ID:IVgA8VM10
PyObjを別に建てればいいだけの話だろ。一緒にしても良かったと思うが。
16名称未設定:2007/10/30(火) 19:55:16 ID:3wNJSWwn0
どっちのスレも伸びなさそうだけど
17名称未設定:2007/10/30(火) 20:08:54 ID:JMdRWnBC0
複数の言語系が一つのスレの中で入り乱れるよりは、
RubyCocoaでのスレとして発展して欲しいと思うので<
Rubyとpythonは別々にで一票。

Camel Bonesも欲しいとこだけど、需要がないのかな。
今回、cocoa環境に入らなかったのはちょっと残念。
18:2007/10/30(火) 20:27:34 ID:WaDTJnBB0
オレは駱駝の骨でがんばってみる.
19名称未設定:2007/10/31(水) 12:17:21 ID:ccssBaBL0
>>13
system の ruby 関連のファイルを消すのは危険。
インストーラーとかで内部で ruby を読んでたりするから ...

>>17,18
CamelBones は単純に間に合わなかったと開発者がいってた気がする
まあ Apple の開発者があまり興味を持ってなかったのかな ...
2013:2007/10/31(水) 12:34:08 ID:b1nta+dw0
>>19
やっぱり危険ですよね。
ということはエラーを見て見ぬ振りをしてやり過ごすか
ゼロからインストールし直すか。
MacPortsでRubyCocoaの最新がインストールできると
いいのだけど,,,願わくば1.0
21名称未設定:2007/10/31(水) 12:47:11 ID:ccssBaBL0
あきらめて leopard 買えば?
22名称未設定: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名称未設定:2007/11/01(木) 22:02:21 ID:1zjd+64a0
Ruby知らんのだけど、
Cocoa/Objective-Cにおいて、IBActionはvoidと等価。
だからRubyではib_actionなくてもいいんじゃない?
25名称未設定: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に含まれているはずの各行に応じたオブジェクトを,どうやって取得すればよいのかが解りません。

どうぞよろしく
2827:2007/11/02(金) 15:46:15 ID:YdX2mYeQ0
29名称未設定:2007/11/03(土) 01:36:04 ID:1PfPcUJH0
>>27
NSSet(NSCFSet)のallObjectsというメソッドで同じ内容のNSArrayを得ることができます。
NSArrayはRubyのArrayクラスと同じようにeachが使えるようになっているので
@managedObjectContext.registeredObjects.allObjects do |entry|
# 1件ずつの処理
end
と書けます。
3029:2007/11/03(土) 01:37:39 ID:1PfPcUJH0
ごめんなさい、each抜けてました
@managedObjectContext.registeredObjects.allObjects.each do |entry|
# 1件ずつの処理
end
です。
31名称未設定: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
http://www.apple.com/jp/macosx/features/300.html#unix
スクリプティングブリッジと関係あるんじゃないですか?
なので,多分Leopardからだと思う。

AppleScriptの代わりにRubyOSAが使えるっていう噂はどうなったのだろう?
標準で使えるなら,Rubyで他のアプリを操作できるものを作れるってことだから,
かなり楽になるかも
33名称未設定:2007/11/03(土) 17:11:29 ID:x0ahP+Zd0
34名称未設定:2007/11/04(日) 01:58:09 ID:hRwgY5Fp0
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名称未設定: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
http://edotprintstacktrace.blogspot.com/2007/07/kvc.html
を参考にしてるのですが,
NSTableのインスペクタを表示できないのです。何かこつがありますか?
どうしてもNSTableViewかNSScrollViewしか表示できないんです。

NSTableViewのインスペクタ中にも"Controller Content Parameters"
というのはないです。
(Action Invocation, Avalability, Font, Table Content, Parametarsしかないです)
40名称未設定:2007/11/13(火) 21:21:16 ID:8AvKxq5C0
>>38
コマンドラインツールだったら、普通にRubyで作れるんじゃないか?
プラグインに関してはよく分からない。
41名称未設定: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名称未設定: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名称未設定:2007/11/17(土) 16:44:57 ID:boskS6O+0
だってRubyCocoaってそういう人たち向けに作られたものだし。
45名称未設定:2007/11/17(土) 18:38:02 ID:rMOsv6rN0
>>43
Objective-C で解説された Cocoa の本を買って、
Objective-C の部分を適宜 Ruby に脳内変換すればいいだけ。
http://pub.cozmixng.org/~the-rwiki/rw-cgi.rb?cmd=view;name=RubyCocoa%A4%C7Cocoa%CB%DC
46名称未設定:2007/11/18(日) 06:38:44 ID:xb1Ii9wH0
>>43
Ruby わかってるひとは Obj-C の文法わかるまでに一時間かかりません
とくに Leopard で GC on にすれば。

正直普通に Obj-C を勉強するほうがはやいとおもわれ。
そのほうが文献おおいし。
あとはふつうに ADC にある Obj-C で Cocoa のチュートリアルとか読めば ok
47名称未設定:2007/11/18(日) 06:43:54 ID:xb1Ii9wH0
というか、>>43 がきにしているのは、言語としての Obj-C そのものというより、
Cocoa の作法のことなのかという気がしてきた。
target/action とか、IBOutlet とか、delegate とかそういうことか。

たしかにそういう概念を RubyCocoa つかって解説したのはみたことないなぁ ...
う〜む。

まあ Obj-C 怖くないからやってみろ。C 系といっても malloc いらないし。
48名称未設定:2007/11/18(日) 13:44:45 ID:htLN6FJS0
Cでよく躓くところってmallocじゃなくね?
49名称未設定:2007/11/18(日) 14:07:41 ID:N7BrJO440
もともとRubyでずーっと仕事やってきたけど、Objective-C楽しいよw
50名称未設定:2007/11/18(日) 14:18:22 ID:xb1Ii9wH0
>>48
Ruby しかしらないひとにとって何が問題なんだろう?
ポインタ演算とか?Obj-C はまあオブジェクトはポインタだけど、
C 的なポインタ演算は滅多にしないよね。
NSString は unicode で char* みたいな問題もないし ...
51名称未設定: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名称未設定: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名称未設定:2007/11/20(火) 23:14:18 ID:orruJM3j0
>>56
/System/Library…でなく、/Library…なところをみると
TigerでRubyCocoaを入れて
そのままLeopardに移行してきたとかですかね。
(私の時のメッセージは覚えてませんが、
というかコンソール見てなかった)
私の場合はTigerで入れた奴が悪さしてるぽくて
(恐らく/Library/Frameworks…な奴ら)、
取り敢えずそれを破棄したら
LeopardのXcode3.0で動作がまともになったことはあります。
が、どういう破棄の仕方が正しいのか良く分かりません。
5853: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を吐き出す所まではたどり着けました。
もちっと精進してみますです。
5956:2007/11/22(木) 00:04:01 ID:w5uE4B2n0
>57さん

ビンゴです。TigerでRubyCocoaを入れてLeopardにアップグレードしました。
/Library/Frameworks/Ruby.frameworkをリネームしたら、うまく動作しました。
ありがとうございました。
60名称未設定: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
などと移動すれば利用できると思います。

6160:2007/11/23(金) 11:30:05 ID:YqFwUebX0
>>55
Xcode2.5用のプロジェクトテンプレートのインストーラを用意しました。
お手数ですが、これもダウンロードしてインストールしてください。
新規プロジェクトでRubyCocoaのものを選択できるようになるはずです。
http://sourceforge.net/project/showfiles.php?group_id=44114&package_id=36578&release_id=532169
のRubyCocoa-0.12.0-Xcode2.5-Templates.dmgです。
62名称未設定:2007/11/25(日) 10:28:57 ID:C31mkAz20
>>61
ありがとうございます。
無事確認できました。
63名称未設定:2007/11/26(月) 23:54:31 ID:+os7QjeM0
0.13.0に上がったみたいよ
はやくgemsでアップデートできるようになるといいなぁ
64名称未設定:2007/12/13(木) 23:58:29 ID:5V/68Lyl0
Python勉強中の俺が颯爽と保守
65名称未設定: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名称未設定:2007/12/18(火) 23:23:47 ID:UJxqUidi0
>>65がスレ違いなのは>>64のせい
67名称未設定: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名称未設定:2007/12/19(水) 20:32:19 ID:mGgB9Fs20
>>65
どうもありがとうございました。

>>66
PyObjCはマイナーなのでRubyCocoa陣営の仲間に入れてやってはもらえませぬか
たぶん専用スレ建てても保たないだろうと思います。
70名称未設定:2007/12/19(水) 22:52:50 ID:SHi/TgGR0
昔からPythonがどうにも好きになれない俺としては…まぁ良いけど
ここに書いても Python な人は来ないと思うぞ。
71名称未設定:2007/12/20(木) 10:45:16 ID:9C5JmvhT0
江島健太郎 / Kenn's Clairvoyance
MacにRailsをゼロからインストールする一番簡単な方法
http://japan.cnet.com/blog/kenn/2007/12/19/entry_25003169

Leopardには初めからRails入ってるけど、それに触れないのはなぜ?
72名称未設定:2007/12/20(木) 11:30:04 ID:FbrUaxRs0
本人に言えよw
73名称未設定:2007/12/20(木) 21:38:21 ID:aGMEnGl20
>>江島健太郎 / Kenn's Clairvoyance
この程度の人にでも、記事が書けるのか?!
74名称未設定: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名称未設定:2007/12/28(金) 07:12:33 ID:ncpRqPb6O
羞恥age
79名称未設定:2007/12/28(金) 07:13:34 ID:ncpRqPb6O
まぁ年末年始にはよくあることだ
80名称未設定:2007/12/28(金) 08:01:40 ID:sb5vhpU10
XcodeをつかってPyObjCのアプリケーションのビルドと自動実行までできた〜(^o^)/
新規カスタム実行可能ファイルの設定がミソだった。
81名称未設定:2007/12/29(土) 07:43:03 ID:Vazt03qm0
うんうんよかったね
みんな初めはそうだよ
82名称未設定:2007/12/29(土) 11:30:18 ID:nRUO5dQz0
>>80
おそらく,似たような初心者がゴマンといるから,
そのミソとやらを書いておくと,このスレも健全に延びて行くぞよ。
8380:2007/12/29(土) 14:03:36 ID:2P2X6WmH0
>>82
Objective-Cアプリの様に、ビルド&ランを一発で行える環境がほしかったんです。

新規カスタム実行可能ファイルメニューから
My PyObjC.xcodeproj/build/Debug/My PyObjC.app
のようにビルドされたアプリを選択すれば、自動実行できました。
84名称未設定:2008/01/07(月) 11:08:05 ID:6p5pFbow0
保守
85名称未設定:2008/01/14(月) 16:13:39 ID:kxCMZM750
NSFormのフィールド数を増やすのを調べるだけで2時間かかったワロタ
optionキーで延ばすのかよwww
86名称未設定:2008/01/15(火) 02:01:41 ID:nkNypgn80
mac はオプションキーおしながらなにかするといろいろ
変な機能があったりするので
無意味に option おしてみるのがオヌヌメ
87名称未設定:2008/01/15(火) 22:19:02 ID:Si5XKA8H0
>>
88名称未設定:2008/01/26(土) 08:42:33 ID:EROT7D7p0
RubyCocoaでMac版Winnyを作れそうですね。pynyからソース引っ張ってきて。
89名称未設定:2008/01/26(土) 09:28:32 ID:42x0AZNA0
pyny というなら PyObjC のほうではないかと ...
というかプロトコルが割れてるんだから別にどんなプログラミング言語でも
好きなようにつくればいいのではと思われる
90名称未設定:2008/02/05(火) 07:12:55 ID:V59gPv4tO
Io保守Language
91名称未設定: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名称未設定:2008/02/10(日) 21:30:37 ID:H10pNU8z0
「Cの中でも」って表現はエンジニアとしてやばい気がする
94名称未設定:2008/02/10(日) 23:36:07 ID:Ttqe3MTD0
そもそも C言語で挫折云々という話にエンジニアも何もないような。
95名称未設定:2008/02/11(月) 00:01:59 ID:9y1algFN0
スレ違い・・・
96名称未設定:2008/02/17(日) 15:34:58 ID:cXaOS69U0
http://limechat.net/rubycocoa/tutorial/
ここみてるんだがTigerでXcode2.5なんだが、ライブラリパレットにあたるのがどれかわからない。
ぐぐってもみつからなかったようなので教えてくれ。先にすすまない。
97名称未設定: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名称未設定: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名称未設定: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は正しい場所にインストールされているはずです。
10198:2008/03/01(土) 12:18:59 ID:H9eXm3CC0
>>100 ありがとうございます 空爆後の処理だけしか見てなかったという事ですね。
名前を2.5にしたらひとまず選択肢に現れてくれました。これから勉強です。
>>96 同じ所で前回つまずいて投げたのを思い出した。
今回もう一度挑戦するにあたり、もう少し調べてみた。
rubyだけでGUIアプリが作れるかなと思ったけど、GUIアプリ作った事無い初心者かつ10.4という
状態ではさすがに少しはobjective-Cもかじらないとチュートリアルさえ理解できないみたい。

アップルの日本語チュートリアルは既にxcode3.0になってしまっているので、
http://homepage.mac.com/nsekine/SYW/SYWSoft/learnCocoa/bexcoder.html
ここのBecome An Xcoder がまだ2.5(?)対応のうちに素早くダウンロードする事をおすすめ。
102名称未設定: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名称未設定:2008/03/03(月) 09:25:00 ID:22NAIdX+0
>>102 続き
コントローラクラスの編集は、Xcodeに戻って、AppController.rbを選んで行う。
(AppController.hやAppController.mではない)
104名称未設定: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"
にしたら動いた。
105100: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名称未設定: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をビルドしてみましたが、
特に問題は見当たらないようです。
107100:2008/03/06(木) 22:14:44 ID:cUB9Ocp/0
>>105

ありがとうございます。0.13.2.1リリースしました。
108100:2008/03/06(木) 22:15:10 ID:cUB9Ocp/0
おおっと >>106 ね。
109名称未設定:2008/03/07(金) 07:22:48 ID:AnQeBV7G0
チュートリアルのサイトも最新版に合わせて更新してほしいな
古すぎてそのままやっても動かん。。。
110名称未設定:2008/03/08(土) 00:43:31 ID:RSFfiKEf0
Objective-CベースのRuby実装「MacRuby」が登場
http://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名称未設定:2008/03/08(土) 10:19:23 ID:C91wOQWN0
>>111
なぜ「MacRuby以外で書く理由がまったくなくなる」のかを
このヘタレめにお教え下さい。
113名称未設定:2008/03/08(土) 12:23:07 ID:BHvX3Mle0
>>109 なにっ、あれでも古いのか?
こっちは新しすぎて苦労した。
チュートリアル書く人も、
新しい、いや古過ぎる、と言われて大変だな。

どこでどうなったとか書いてくれたら、
チュートリアル各人とか、
ほかに同様に詰まった人とかも助かるかもしれない。
まあ、めんどくさいというのなら無理に勧めないが。
114名称未設定:2008/03/09(日) 10:05:24 ID:8yztwNJP0
>>111
速度面ではObjective-CやC++を使うメリットはまだまだあると思うが。
115名称未設定:2008/03/09(日) 10:34:31 ID:qByZEO6i0
111 は単に RubyCocoa と MacRuby を比較したのでは?
116名称未設定:2008/03/09(日) 11:23:17 ID:8yztwNJP0
そっか、それなら納得。
117111: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名称未設定:2008/03/10(月) 09:49:58 ID:PooR7Pns0
正規表現が標準搭載でないことを除けば、
Obj-C で充分書きやすいとおもうのは僕だけ?
情けないながら Ruby つかいこなしてないけど。
119名称未設定:2008/03/10(月) 11:18:58 ID:PwZtS3JJ0
書きやすいかどうかってのは人によるという結論しか導けないと思うけど、
パフォーマンスを追求するハイエンドのアプリを作るプロとしての意見なら、
なにかこれって言う物があるかもしれないね。
120名称未設定:2008/03/10(月) 23:32:46 ID:vOd+TKMH0
好きなほうを使えばいいんじゃないでしょうか。今までのように混ぜることもできるし。

パフォーマンスに関して言えば、int/float/structのような非idについては
オブジェクト変換のオーバーヘッドはそこそこ残るはず。BridgeSupportもまだ残る。
でも、117が言うように多くのアプリでは問題にはならないと思う。

10.6に搭載されるにはそれより前にRuby1.9.1がリリースされていないと
難しいんじゃないかなあ。
121名称未設定:2008/03/11(火) 20:59:37 ID:BfH1dqPu0
ObjectiveC++が最高よ
ただNSValueにC++のクラスが入れられないのが不満かな
122名称未設定: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名称未設定:2008/04/05(土) 23:47:55 ID:wRC4Vu8S0
mdimporterをRubyで書けたら便利だなーと思って探してたら、
こんなページを発見。
ttp://www.yoshidam.net/diary/200505.html
ソースを見てみたけど、要するにCにRubyインタプリタを
組み込むときと同じ手順になるわけですね。
ただ、定型的なコードとはいえ、やっぱりごちゃごちゃ
してしまう。MacRubyでも基本的には同じことなんだろうか?
124名称未設定: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名称未設定:2008/06/07(土) 22:47:32 ID:C/yRQREs0
そんなあなたにMacRuby
127名称未設定: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

思うだけで試していないので、あとでやってみて報告しますね。
128125: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名称未設定:2008/06/08(日) 00:47:17 ID:xdlwDwXd0
RubyCocoa って ruby 1.8.x が対象なんだよな?

1.9.x系でCocoa使いたかったらMacRuby使えという理解で良いんだよね?
130125:2008/06/08(日) 01:41:18 ID:cj+xwaaJO
MacRuby見てきました。
かなり良さげですね。

今からやるとしたらRubyCocoaは捨ててMacRubyの方がオススメですか?


RubyやCocoaと戯れて遊ぶのが目的なので、仕事ではないです。


Ruby1.9やMacRubyの完成度ってどんなものなんでしょうか。(ていうか以前Ruby1.9がコンパイルできずにMacPortsへ逃げたクチです)

今から試しに入れてみます。
131125: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使った方がよさそうですかね。
132127:2008/06/11(水) 22:24:50 ID:xnYHbiB20
>>128
あー、そりゃあsetValue_forKeyが必要ですね。考え至らずすみません。
133名称未設定:2008/06/12(木) 00:12:26 ID:MQ7uPTHt0
システム環境設定のスピーチ内の
声を選ぶときのリスト内の男性などの薄い色で書かれているものは
Interface Buillder のライブラリのどれを使っているのでしょうか
134名称未設定:2008/06/14(土) 20:46:51 ID:dNycpHBz0
1.所属するNSMenuをsetAutoenablesItems:YESしてNSMenuItemにsetEnabled:NOする。
2.NSMenuValidationで当該NSMenuItemオブジェクトについてNOを返す。
135名称未設定:2008/06/14(土) 20:47:26 ID:dNycpHBz0
間違えた。
1.所属するNSMenuをsetAutoenablesItems:NOしてNSMenuItemにsetEnabled:NOする。

でも2.推奨。
136名称未設定:2008/06/14(土) 21:00:42 ID:2EUD2BOn0
>>134-135
回答ありがとうございます。
早速実装してみました。

また別の質問なのですが
NSSpeechSynthesizer のsetRateで話す速度を設定したいのですが
環境設定のスピーチで設定できるしゃべる速度はどの範囲ですか?
よろしくお願いします。
137名称未設定:2008/06/14(土) 21:47:50 ID:m7rgqH2K0
>>136
それくらいは自分で試せば良いんじゃないの?
138名称未設定:2008/06/20(金) 01:40:36 ID:OPI2O2si0
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名称未設定:2008/08/02(土) 12:22:41 ID:kC204Xtv0
RubyCocoaは使ってはいけない
MacRubyの登場でCocoa-Javaの香りがしてきた
なるべくObjectiveCに慣れて、次に備えるべし
144名称未設定: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名称未設定: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'に書きかえればよいかと。

146144: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名称未設定: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
もし既出だったらすいません

お絵描きチャットをしたいのですが
いっつも回線が切断しましたという表示が出て始めることすら出来ません
エチャできてる人いたらどうしたらいいか等おねがいします
151150:2008/08/28(木) 04:24:27 ID:bPoAiUfmO
スミマセン。スレタイ読んでませんでした。
ちょうど回線も切断されているので、吊ってきます。
ちなみに使っているブラウザもURLもOSが何かすらも分かりません。
152名称未設定:2008/08/28(木) 11:29:23 ID:1s0ch5sa0
むしろ、どうやってここにたどり着いたか興味がある。
153名称未設定: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

としました。
http://www.oomori.com/cocoafw/Foundation/NSData/writeToFile.html
を参考にしたのですが,
options: (unsigned int) maskの意味が解説を読んでもわかりません。
(「詳細は"Constants"にあります」とかいてるけど,その"Constants"ってどこ?状態)

optionsとerroはどのように指定すればいいですか?
155名称未設定: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のマニュアルでも読んでくれ
156154: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('http://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をプレビューでみても真っ白け,,,になります。

http://homepage3.nifty.com/kimuraw/d/2004/04.html#19
も試したけど,やっぱり真っ白け,,,

NSViewのdataWithPDFInsideRectは何か挙動がかわったのでしょうか?
157名称未設定:2008/09/02(火) 22:14:20 ID:agEX2R6R0
・NSApplicationをrunしてイベントループまわしてやらないとウインドウは描画されません。
・WebViewの読み込みは非同期なのでdelegateなどで終了を通知してもらうか、てきとうな秒数待つようにする必要があります。
・RubyCocoaのサンプルにdarkroom.rbという、ウェブをPNGとして保存するスクリプトがあるので参考にどうぞ。

158154: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名称未設定:2008/09/03(水) 00:27:31 ID:hS6p5Zfo0
>>158
Appleのは直ってないのか。。。
修正済みのがリポジトリにあるのでそちらを使ってみてください。
http://rubycocoa.svn.sourceforge.net/viewvc/rubycocoa/trunk/src/sample/Scripts/darkroom.rb?revision=2115&view=markup
160名称未設定:2008/09/10(水) 07:18:05 ID:KwINyegI0
MacRuby 0.3
161名称未設定: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名称未設定:2008/10/20(月) 01:18:51 ID:j6j9nf8z0
164名称未設定:2008/11/26(水) 05:43:26 ID:CKOAGFoqi
保守
165名称未設定: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にゃあ: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名称未設定:2009/03/07(土) 18:27:48 ID:rzw/mIwv0
ホームディレクトリの.cocoarepl_scratch.rbをひらいてるのでしょう。
ReplController.rb の awakeFromNib の下から2行目にある
load_scratch
の行を削除するかコメントアウトせよ。
ついでに、いちいち保存されるのがいやなら show_result の最初の
store_scratch
も削除しとけ
173171:2009/03/07(土) 20:04:33 ID:MSy2d4tM0
ありがとう御座います。!!
174名称未設定:2009/03/07(土) 21:34:41 ID:MSy2d4tM0
RubyCocoaでDockのアイコンをクリックしたら:
アプリケーションが隠れていたら表示、ウィンドウが閉じていたら新規作成とするには
どのようにすれば良いのでしょうか?
http://blog.cocoa-study.com/?day=20050701
こちらのページを参考にいかのような物をウィンドウ表示を担当するコントローラクラスに
かいてみたのですがnibファイルを開いても反映されません
ib_action :applicationOpenUntitledFil do |sender|
@window.NSApplication.makeKeyAndOrderFront(nil)
end
よろしくおねがいします。

175174:2009/03/07(土) 21:46:44 ID:MSy2d4tM0
クリーニングしてみた所
反映はされました、しかしInterfaceBuilderでクラスからひっぱってWindowにつなげても
これは選択肢にでませんでした。どのようにすれば良いのかよろしくおねがいします。
176名称未設定:2009/03/08(日) 01:43:30 ID:rBsRDVjQ0
>>174
とりあえず ...UntitledFile ね。最後の e を忘れている。
返り値も ib_action じゃなくて bool 。
あと、これはアクションメソッドじゃないので、
クラスのアウトレット @window に対応する Window を IB で
つなげばいいだけです。
ドックのアイコンをクリックしたら、Cocoa のシステムが
自動的に app delegate の
applicationOpenUntitledFile:
を呼びます。だからあなたはそれを実装するだけです。
177名称未設定:2009/03/09(月) 22:53:48 ID:28xfUO3i0
178名称未設定:2009/03/26(木) 07:00:35 ID:DZj12hiH0
class AClass < OSX::NSObject
def AClass.initialize
puts "+(void)initialize"
end
end

AClass.initializeはランタイム側から
呼んでもらえないんでしょうか?
179名称未設定:2009/03/26(木) 12:26:18 ID:UUCg7QO00
>>178
うん、呼ばれません。なぜかというと AClassクラス自体はObjective-Cのオブ
ジェクトじゃないからです。そのかわりに

class AClass < OSX::NSObject
puts "AClassをロード中"
end

こういうふうに書いとくと、このコードがRubyにロードされたときに実行され
るので、initialize にまあまあ近いタイミングで実行されるよ。

180名称未設定:2009/03/26(木) 16:00:36 ID:ZtaxedWsi
>>178
MacRubyだと、Rubyのオブジェクトは全部Objective-Cのオブジェクトなので、そのinitializeも呼ばれるはず
181名称未設定:2009/03/26(木) 19:09:12 ID:DZj12hiH0
>>179, 180
なるほど、私の勉強不足でしたが納得です。
にしてもRubyCocoa楽しいですね。

ありがとうございました。
182名称未設定:2009/05/04(月) 02:09:11 ID:aA6moQXB0
勉強したい
183名称未設定:2009/05/11(月) 22:08:26 ID:lb+X2KJ90
MacRubyがやっぱり本命なんだろうね。
184名称未設定:2009/06/01(月) 15:37:45 ID:uVucGraa0
HotCocoaがすばらしい。
Objective-C流のごちゃごちゃしたメソッド名を書かなくて済む。
Interface Builderもいらない。
再配布できる実行アプリケーション作成は macrake deploy 一発。
185名称未設定:2009/06/26(金) 19:35:06 ID:PxTjIatI0
5年後にはRubyは林檎が開発したことにされているだろうな。


そして、「ドザがRubyを劣化パクリ」とか信者が必死に言ってるだろうね。

186名称未設定:2009/06/26(金) 19:36:32 ID:gJasQWKA0
(;´Д`)…
187名称未設定:2009/06/26(金) 19:55:06 ID:yqHDW7IS0
>>185
なんつーか、ぜんぶ間違ってると思う。
188名称未設定:2009/06/26(金) 21:45:21 ID:eFty040f0
OOなんてする奴は
  ∧_∧
 (   )
 ( O )
 | | |
 (__(__)

どこのどいつだ!!
  ∧_∧
  ( @Д@)彡
 (m9  つ
  人 Y 彡
 し"(_)

 ┏━━━━━━━┓
 ┃   Λ_Λ ┃
 ┃   ( ;@Д@) ┃
 ∧_∧ (m9  つ ┃
(   )人 Y  ┃
( O つ (_)  ┃
`ノ  イ━━━━━┛
し-"(_)
189名称未設定:2009/06/26(金) 21:50:24 ID:tiKc08kq0
>>185
うん、まあ、なんだ、デカい釣り針だな。

それに、そんなことやったらモルモン教とApple教で宗教戦争が起きるぞ
190名称未設定:2009/06/27(土) 11:34:12 ID:he5Q1Hr60
大体こんな感じのことが起こると思われ。

・RubyのBest環境はMacって方向に持っていく。
(世論操作+関連ソフトやOSでのサポート体制強化)

・作者およびキーマンの雇用

・関連団体への支援or別途子飼の関連団体を作成(強力にPush)

・新たなRubyの実装を製作

・本来のRubyの実装は、原始的で、ちんけで、時代遅れ、いけてない
というレッテル貼りが活性化。最終的には「いまRubyといったら普通は
林檎Rubyを指す」ということが公共のメディアを含めて一般化される。

・本来のRubyは「ガラピー」と名付けられ、使用すると「ドザ」認定されるようになるw。

・Rubyの仕様(Rubyと言ったら林檎Rubyのことね)を制定するワーキング
グループが正式に林檎から提案され世界中から承認される。

191名称未設定:2009/06/27(土) 12:54:32 ID:qLIEtmOl0
流石に釣り針がでかいが、matzの実装を無視したRubyってのも面白いかも知れないとは思う
192名称未設定:2009/06/27(土) 17:06:51 ID:0AcIdje90
>>190
林檎RubyってMacRubyのことじゃないよね?
193名称未設定:2009/06/27(土) 23:50:40 ID:CxLzHTFq0
MacRuby と Matz Ruby って発音似てる!不思議!
194名称未設定:2009/07/06(月) 14:09:55 ID:+rhJqohZ0
Rubyを作った人ってmacになじめないとか言ってたような気がする。

だからbest環境がmacとなるのは難しそうな気がする
195名称未設定:2009/07/06(月) 15:48:31 ID:4KDxP92Z0
Windows用も自分で作る気はないって言ってるしな
196名称未設定:2009/07/06(月) 20:22:23 ID:6T1eAxdF0
>>194
matzはMacっていうかトラックパッドが嫌いなんでしょ(だからPCはThinkPadを使っている)。
197名称未設定:2009/07/28(火) 20:59:24 ID:5HMarWry0
RubyCocoa 1.0.0
198名称未設定:2009/09/05(土) 07:27:43 ID:9SLLmIGu0
Snow LeopardのXcode Toolsから、RubyCocoaがなくなっている!
Leopard一代限りだったか。なにかいけないことしたんでしょうか?
199名称未設定:2009/09/05(土) 10:53:41 ID:AWH7z7xD0
MacRuby に鞍替えするんじゃない?開発者の Laurent はApple社員だし
200名称未設定:2009/09/05(土) 22:59:37 ID:be+wMAR70
ただ単にXcodeのプロジェクトテンプレートの数を減らしただけ
201名称未設定:2009/09/06(日) 20:11:43 ID:Lb0z5QtM0
Snow LeopardへのMacRuby導入の良エントリ
ttp://www.icoretech.org/2009/08/having-fun-with-macruby/

ただ、日本語環境でmacirbを起動するとエラーになる。
LANG=C macirb で回避できるけど。
202名称未設定:2009/09/06(日) 20:37:38 ID:8EKhiGPW0
>>198-200
このページのスクリーンショットにはRubyCocoa Applicationテンプレートが
あるのに、本当だとしたら騙された気分....。

http://www.apple.com/jp/macosx/developers/#languages

ところで、ついにProgramming Cocoa with Rubyが発売開始されましたね。

http://www.amazon.co.jp/Programming-Cocoa-Ruby-Compelling-RubyCocoa/dp/1934356190/
203名称未設定:2009/09/06(日) 22:57:46 ID:BnE4l9Ao0
10.6でRubyCocoaアプリを新規作成するにはどうすればよいのでしょうか?
204名称未設定:2009/09/06(日) 23:47:36 ID:Lb0z5QtM0
>>203
10.6用のインストーラはまだ出ていないようなので、

svn co https://rubycocoa.svn.sourceforge.net/svnroot/rubycocoa/trunk/src rubycocoa
cd rubycocoa
/usr/bin/ruby install.rb config --prefix=/usr
/usr/bin/ruby install.rb setup
sudo /usr/bin/ruby install.rb install

と、ターミナルで打ち込んでインストールすれば、Xcodeのテンプレート選択画面の
User Templates → Application に、Cocoa-Ruby Application などのテンプレートが
出てくる。
205名称未設定:2009/09/07(月) 01:41:05 ID:m2hd7SMC0
>>202
"Programming Cocoa with Ruby"、半年ほど前に注文したけど
どんどん発売がずれ、やっと10日ほど前に届きました。

かなり期待して半分くらい読んだけど、すこし読みづらい微妙な内容の本です。
メソッドの書き方などの基本的なことがきっちりと説明されていないし。

Cocoaの知識は不要となっているけど、それではたぶん無理です。
サンプルプログラムもあまりおもしろくないし。

ファイル名の部分に5ポイントくらいの小さなフォントを
使っているのは、私のような老眼のじいさんにはつらいです。

rubycocoaを使い始めたときに、この本の中の "Drag and Drop" や
"Notification" の説明があったら、きっと楽できただろうなという
部分はあるんだけれど。
206名称未設定:2009/09/12(土) 01:17:48 ID:Q6ef4kyM0
SnowLeopard になって XCode が 3.2 になりました。
Leopard の時から私の環境だと XCode と interface builder の同期がうまくとれず、ib_outlet や ib_action を interface builder で手で入力してつないでいました。
SnowLeopard になってから interface builder にそのような項目がなくなってしまい、新しく ib_outlet や ib_action を追加することができなくなってしまいました。
なにかよい解決方法がありましたら教えてください。
よろしくおねがいします。
207名称未設定:2009/09/12(土) 01:24:43 ID:Q6ef4kyM0
>>206
自己解決してしまった。
ttp://www.tuaw.com/2009/09/10/xcode-3-2-daily-tip-adding-actions-and-outlets-in-ib/
ここに書いてある方法でできました。
失礼しました。
208名称未設定:2009/09/13(日) 01:56:31 ID:PA4iQ/LD0
>>206
余計なお世話だがそんな不安定な環境で、コーディングはともかく、テストは無駄だと思う。
209名称未設定:2009/09/13(日) 21:29:33 ID:pd7BzeQH0
いちおうRubyCocoa関係なのでここに書きますが、
MeowというGrowlライブラリ(2.1.0)を10.6.1にgemでインストールすると
Meow.new('hoge')したとたんに
Assertion failed: (ctx->autoreleasePool == NSTHREAD_autoreleasePool_get(thread)), function rb_cocoa_thread_init_context, file /Users/hoge/work/rubycocoa/rubycocoa/framework/src/objc/RBRuntime.m, line 721.
というエラーが出て停止してしまいます。
(file以下のディレクトリはrubycocoaの最新版をsvn coしたところです)
RubyCocoaのSnow Leopard対応に何か問題があるということなんでしょうか。
210名称未設定:2009/09/13(日) 21:53:32 ID:kI1o0/+e0
>>209
そもそも現状で問題があるか否かなんて判断は、速いんじゃないのかな。
RubyやRubyCocoaなんてオプソでボランティアが作っているソフトなんだから、
アプデートされるのをマターリと待つのがいいよ。
>>208が言うように、トラブルあって当たり前の感覚でいないと。
(Objective-C 2.0で問題があればAppleケシカランはいいと思うけどね。メーカ製だから。)
211名称未設定:2009/09/15(火) 00:07:21 ID:zwTqvL0u0
>>209
RubyCocoaのメンテナです。
その現象が再現することを確認しました、ありがとうございます。
どういう問題かについてはまだ調査中です。もう少し時間をください。
212名称未設定:2009/09/17(木) 19:25:20 ID:ChDdCjbu0
>>205
途中まではCocoaプログラミングの一般的なことをなぞっている感じで、
例もつまらないんだけど、Ruby流のコーディングの説明が出てきてから
がぜんやる気が出てきた。
213名称未設定:2009/10/01(木) 19:50:30 ID:37QaXFn10
RubyによるMac OS Xデスクトップアプリケーション開発入門
ttp://book.mycom.co.jp/book/978-4-8399-3178-0/978-4-8399-3178-0.shtml
もう読んだ人います?
214211:2009/10/14(水) 00:40:07 ID:oEVXFvRU0
>>209
その問題を修正したバージョンをちかぢかリリースする予定です。
遅くなってしまってすみません。
215名称未設定:2009/10/18(日) 21:41:39 ID:L65DsoQE0
1.0.1でましたね
216名称未設定:2009/10/27(火) 16:42:35 ID:pUypC6ym0
豚切り質問ごめんなさい。
Leopard+Xcode 3.1で作ったRubyCocoaアプリを、Tiger向けにも
動作できるように配布するにはどうすればいいんでしょうか。
(アプリのDEPLOYは10.4にしてあります)

(1)TigerにRubyCocoa 1.0バイナリをインストールしただけの環境で
動かしてみたら起動すらしませんでした。

(2)次にRubyCocoa 0.13.2で試そうとしたらダウングレード
インストールができない模様…順序間違えました…

(3)ユーザーに別途RubyCocoaをアプリに含める等して、アプリ単体で
Tiger上で動かす方法があればいうことないです。
217名称未設定:2009/12/28(月) 14:07:58 ID:l71COxy+0
超入門サイトないかな?
218名称未設定:2010/01/02(土) 11:13:01 ID:E+Ldzltd0
ここでいいのかな?

Ruby側で読んでるデータを元にNumbersを自動運転させたいんだけど、
AppleEventをどうやって呼んで使えばいいのか分からない;_;)
AEOSAとかrubyosaとかAppleEventを操作するライブラリが色々
あるみたいだけど、10.6時代の今なにをつかえばいいんだろう?
219名称未設定:2010/01/03(日) 03:37:32 ID:ioSzJFVn0
rubyosa でいいんじゃね?ScriptingBridge つかってもいいとおもうが。
とりあえず多少 applescript 勉強しないといかんと思う
220名称未設定:2010/01/03(日) 10:39:06 ID:zTnnTpvB0
うーん
http://rubyforge.org/tracker/?atid=7180&group_id=1845&func=browse
にぶちあたってしまった。macportsのでもgemのでも一緒。

ScriptingBridgeならなんとかしてくれるとおもって
portsからRubyCocoaをインストールしようとすると↓

/bin/sh -c /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_ruby_rb-cocoa/work/RubyCocoa-1.0.1/framework/build/RubyCocoa.build/Default/RubyCocoa.build/Script-4D7AD1190BF2994500F1A2C6.sh

** BUILD FAILED **


The following build commands failed:
RubyCocoa:
Ld /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_ruby_rb-cocoa/work/RubyCocoa-1.0.1/framework/build/Default/RubyCocoa.framework/Versions/A/RubyCocoa normal x86_64
(1 failure)

setup failed
'system /usr/bin/xcodebuild' failed
try 'ruby install.rb --help' for usage


バイナリ版をいれたらterminalからrequire 'osx/cocoa'できない(どこにインストールされてるんだ?)
221名称未設定:2010/01/05(火) 22:01:01 ID:u1xWOLVu0
>>220

[rubyosa]
macportsのrb-rubyosaのコンパイルエラーを直しました。
port syncなどでport treeを更新したうえでもう一度インストールしてみてください。

[RubyCocoa]
バイナリ版はMacOSXにはじめから入っている/usr/bin/ruby用に構成しています。
rubyをフルパスで/usr/bin/rubyとするとrequire 'osx/cocoa'できるはずです。
222名称未設定:2010/01/05(火) 22:08:54 ID:u1xWOLVu0
>>216
いまさらですみません…

原則として、MACOSX_DELOYMENT_TARGETとSDKROOTのふたつが10.4になっていれば
だいじょうぶなはずです。もし.app内にRubyCocoa.frameworkをいれるのであれは
10.4用のフレームワークを入れるようにしてください。

アプリケーションが起動しない、というときはコンソールになんらかのメッセージが
でているはずなので、そのメッセージを貼ってもらえれば原因がわかるかもしれません。
223216:2010/01/06(水) 15:28:27 ID:RF22gq1w0
>>222
216です。
「いまさらですみません…」なんてとんでもないです。
後ほど試して、またレスします。
情報ありがとう。
224名称未設定:2010/01/09(土) 10:46:01 ID:PioZCSKk0
Ruby
HotRuby
RubyCocoa
三種類入れても問題ないんでしょうか?
225名称未設定:2010/01/09(土) 13:11:25 ID:O9gdmNRO0
入門ページをつくってほしいな
226220:2010/01/09(土) 18:05:49 ID:AC6Eg9Yv0
>>221
ありがとう!
うまくインストールできました。
動くようになったので、がんばれそうです。
227名称未設定:2010/01/09(土) 20:30:38 ID:J82BihGn0
動作性能的にはMacRubyで決定なのかな。
228名称未設定:2010/01/10(日) 10:32:38 ID:+jTO4TQh0
>224

問題ないけど何か分かっていない気がする。

・Rubyは言語。これが入っていなければ何も出来ない。Mac OS Xにはプレインストール済み。
・HotRubyはMacRubyのGUI環境?で使うものなのでRubyCocoaと同列に語るのはおかしい

ということで、Ruby + (MacRuby|RubyCocoa)の組み合わせで使うものという認識です。間違っていたらフォローしてください。
229名称未設定:2010/01/10(日) 10:50:14 ID:1PNXnOn60
>>228
MacRuby使うのであればRuby環境はいらない。

RubyCocoa は Ruby-1.8.x 環境からCocoaのAPIを呼び出す為のライブラリ。従ってRuby-1.8の処理系が必須。Leopard以降であればRubyもRubyCocoaもOSに標準添付されてる。

対してMacRuby は、 Ruby-1.9.x をObjective-Cで書き直して、Obj-CとRubyのオブジェクトを一対一に対応させてしまった処理系。だから新たにとってきて、既存のRuby環境とは別に入れる必要がある。
そしてHotCocoaはMacRubyについてくるおてがるGUI環境。
230名称未設定:2010/01/10(日) 20:13:37 ID:uGEYctNM0
MacRubyは、標準的(一般的な)なRuby環境とと同等と考えてよろしいのでしょうか?
231名称未設定:2010/01/11(月) 09:47:25 ID:eRMuMXso0
macgemはまだ↓とかなっちゃうよ
仕様的に1.9準拠といっても、"環境で"という言い方だと一般的とは言いがたい気も。

$ macgem install sqlite3
ERROR: While executing gem ... (RuntimeError)
MacRuby does not support native extensions yet. Be patient :-)
232名称未設定:2010/01/12(火) 20:17:21 ID:esY++qxU0
>>229

なるほど。そういえばMacRubyはランタイム自体をObjective-Cで書き直しているからRubyが要りませんね。

>>230

>MacRubyは、標準的(一般的な)なRuby環境とと同等と考えてよろしいのでしょうか?

・Rubyにとって標準的なRuby環境はRubyです。
・Mac OS X専用アプリを作るのに標準的なRuby環境は、RubyCocoaか
MacRubyか分かりません。MacRubyは将来を期待されていますがまだ
未成熟です。
233名称未設定:2010/01/15(金) 21:12:15 ID:Vjg0B7DP0
でもXcodeのプロジェクトから標準のRubyはなくなったね。
234名称未設定:2010/01/27(水) 11:15:44 ID:4bH3mhfC0
質問です。
RubyCocoaで例えばボタンアクションに

def onFile(sender)
File.open("text.txt","w") do |file|
file.write("This is the text.")
end
end
のような、Rubyでのファイル入出力を記述すると、
Xcodeで実行する時は何も問題ないのですが、
Finderからビルドされたアプリ(.app)をダブルクリックで起動すると、
上記のボタンアクションのところでアプリケーションが落ちます。

どなたか原因・解決法おわかりのかたいらしたら教えていただけると嬉しいです。
235名称未設定:2010/01/27(水) 16:04:50 ID:Q0a/iAMz0
>>234
Finderから起動した場合はカレントディレクトリが / になってるはずです。
/ は管理者権限がないと書き込めないので管理者権限のないアカウントで
起動してエラーになってるのでは?

いずれにしても、とくに理由もなく / にファイルを作るのは
あまりおすすめできません。
ホームディレクトリに作るようにしたらどうでしょうか?

File.open("#{ENV['HOME']}/text.txt","w")

で、ホーム/text.txt にファイルができるはずです。
236234:2010/01/27(水) 17:19:31 ID:4bH3mhfC0
>>235
仰る通りに行ったら無事にできました!!
ありがとうございました。

>Finderから起動した場合はカレントディレクトリが / になってるはずです。
お恥ずかしながら、このことを知りませんでした…。
起動したディレクトリがcdなのだと思っておりました。
いずれにしても、ありがとうございました。
237名称未設定:2010/03/02(火) 22:09:35 ID:k2xgFCNd0
2ch復活スレテスト
238名称未設定
>>221
>rubyosa
開発中止が宣言されていたような