[#44431] コンストラクタの引数について&インスタンス変数の持ち方について — Akira Hayakawa <ruby@...>
度々オブジェクト指向についての質問ですいません。
17 messages
2008/01/04
[#44433] Re: コンストラクタの引数について&インスタンス変数の持ち方について
— Yukihiro Matsumoto <matz@...>
2008/01/04
まつもと ゆきひろです
[#44453] RSS取得時<enclosure>タグでエラー? — "garyo hosu" <garyohosu@...>
garyoです。いつもお世話になっております。
5 messages
2008/01/08
[#44463] [ANN] Rails勉強会@東京 第26回のお知らせ — "MOROHASHI Kyosuke" <moronatural@...>
各位
1 message
2008/01/11
[#44464] [ANN] rcairo 1.5.1 — Kouhei Sutou <kou@...>
須藤です。
5 messages
2008/01/11
[#44469] pdf 作成 ライブラリ — "Luiz Aoki" <luizruby@...>
はじめまして、青木ルイスと申します、
14 messages
2008/01/12
[#44479] ファイル出力時のprintについて
— m-hatake@...
2008/01/16
畠山と申します。
[#44481] Re: ファイル出力時のprintについて
— KIMURA Koichi <kimura.koichi@...>
2008/01/16
木村です。
[#44483] format %g の丸めについて — 山崎雄介 <y-yamasaki@...>
山崎(ゆ)です。
14 messages
2008/01/16
[#44517] www.ruby-lang.org/ja/man/ を静的HTMLに変更 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
6 messages
2008/01/20
[#44536] カタカナ→ひらがな変換 — "Hideo Konami" <konami@...>
小波です。
8 messages
2008/01/25
[ruby-list:44511] Re: [ANN] rcairo 1.5.1
From:
kimura wataru <kimuraw@...>
Date:
2008-01-17 13:35:26 UTC
List:
ruby-list #44511
木村わ@RubyCocoaプロジェクトです。 On Fri, 11 Jan 2008 22:53:05 +0900, Kouhei Sutou wrote: > 須藤です。 > > > Quartzサポートですが、近くにMac OS Xがあったので勘で触りなが > らそれっぽく動くようにしたものなのでちゃんと動かないかもしれ > ません。Objective-CとかCocoaとかわかりませんし。 > とりあえず、Ruby/Cocoaと一緒に使えるようにしました。 > おおー、X11無しで使えるようになるということですね。素晴らしいです。 > ところで、C言語からRubyCocoaと仲良くする方法なのですが、もう > 少し便利な方法を提供してくれる予定はありますか? > 藤本さん?木村さん?lrz? > 予定はなかったのですが「今リクエストされた」ということで考えてみます。 つっこんだ話はrubycocoa-talk MLで議論したほうがコミッタの多くが 参加できるので、そちらのほうが良いかもと思います。 > やってみて、こんなのが欲しかったです。 > > * extconf.rbでRubyCocoaフレームワークがある場所を検出する > 方法 > > 今は、RubyCocoaフレームワークがあるかどうかを検出せずに > いつも-framework RubyCocoaしています。まぁ、絶対入ってい > るいると思っていいのかしら。 > > $DLDFLAGS << " -Wl,-framework,RubyCocoa" > == RubyCocoaは絶対ある? 去年に発売された10.5からは、システムにはじめからインストールされて いますが、それ以前ではそうではありません。 == 有無を検出する方法 あるかどうかを検出する方法は、すぐにはわからないです。スミマセン。 以前に別の拡張ライブラリで、Macの.frameworkを検出するものを 見たような気がするのですが、探し出せませんでした。 > * Rubyオブジェクト <-> Objective-Cオブジェクト変換関数 > > ざっくりながめた感じだとocobj_s_new()とrbobj_get_ocid() > なんじゃないかと思って、自分でプロトタイプ宣言をして使い > ました。.cから#include <ruby-cocoa.h>とかして使えると嬉 > しいです。そうすると、ruby-cocoa.hがある場所を-I...でき > る方法も欲しくなるわけですが。 > == オブジェクトの変換 拡張ライブラリの.cの中で Ruby VALUE <=> ObjC id の変換をしたいと いうことですよね。以下の関数のほうが良いはずです。 ocobj_s_new()をRubyCocoaの外から呼びだすのは好ましくないです。 // framework/src/objc/ocdata_conv.h // VALUE -> id BOOL rbobj_to_nsobj (VALUE obj, id* nsobj); // id -> VALUE VALUE ocid_to_rbobj (VALUE context_obj, id ocid); 後者のcontext_objはQnilを渡してください。 別の方法としては、BridgeSupport[*1]のXMLファイルを用意することで、 拡張モジュールを書かなくても、CやObjective-CライブラリがRubyから 利用できるようになります。そうするとPure Rubyで記述できます。 現在のRubyCocoaでは、CoreGraphicsなどがこの方法で提供されています。 今回の須藤さんのケースでは、Cで拡張ライブラリを書いていて、その一部 としてRubyCocoaの機能を使いたい、ということのようなので、ここでは あまり適した案とはいえなさそうですけれども参考まで。 [*1] http://trac.macosforge.org/projects/bridgesupport == ヘッダのインクルード Macの.frameworkを利用するときは #include <RubyCocoa/ruby-cocoa.h> のように書くことでヘッダファイル (どこか)/RubyCocoa.framework/Headers/ruby-cocoa.h をインクルードできます。場所は通常コンパイラが解決してくれるので -I は不要です。 リンカオプションとして -framework RubyCocoa の指定が必要です。 -- kimura wataru