From: "金光雅夫 (KANEMITSU Masao)" Date: 2002-11-04T15:01:27+09:00 Subject: [ruby-list:36335] Re: Flyaway --------_3DC6089CADF404D2D090_MULTIPART_MIXED_ Content-Type: text/plain; charset="ISO-2022-JP" Content-Transfer-Encoding: 7bit 金光です。どもっ。 On Mon, 4 Nov 2002 13:58:19 +0900 Masatoshi SEKI wrote: > 咳といいます。 > > DRbObject.new(obj) は自分のサービスの提供するオブジェクトobjへの参照を作ります。 ────────────────────────────────────── require 'flyaway' require 'drb/drb' require 'fw_ps_nenga' require 'fwidconv' require 'Nenga-uri' class Nenga include DRbUndumped include FWIdMod end class Front def [](key) return Nenga[key] end end DRb.install_id_conv(FWIdConv.new) DRb.start_service(Nenga::URI, Front.new) puts '[Enter] to exit' gets ────────────────────────────────────── とサーバをしました。名前の混乱があったようです(AtenaとNenga)。。 > DRbObject.new(nil, uri)はuriで示すサービスのフロントオブジェクトへの参照を作ります。 > > 後者はリモートのサービスを利用するのによく使います。 > 前者は陽に参照を作るのに使います。通常はdRubyまかせで自動的に参照を作るのですみます > が、パフォーマンスを気にするときに使ったりします。(引き換えにdRubyに依存したスクリプト > になってしまう) > > 先のメールではDRbObject.new(nenga)としたとのことですので、nengaへの参照となります。 > DRbObjectはリモート、ローカルの区別なくメソッドを呼べますから、db[]はローカルの > nengaの[]が呼ばれます。 > > >> fwid_srv.rb:DRb.start_service(Nenga::URI, Front.new) > > のFront.newしたオブジェクトを利用したいのであればDRbObject.new(nil, Nenga::URI) > かもしれません。 一応、クライアントの方で ────────────────────────────────────── nenga = Nenga::new db = DRbObject.new(nil, Nenga::URI) p db atesaki = db['2003'] # 2003年賀オブジェクトを生成 p atesaki ────────────────────────────────────── のように呼んでいるのですが、 -- # undefined method `[]' called for # (NameError) C:/NET/KJ/apollo/lib/ruby/site_ruby/1.6/drb/drb.rb:458:in `check_insecure_method' C:/NET/KJ/apollo/lib/ruby/site_ruby/1.6/drb/drb.rb:222:in `method_missing' C:\NET\DR\you4.rb:199:in `on_click' C:\NET\DR\you4.rb:260:in `mainloop' C:\NET\DR\you4.rb:260 になります。 DRb::DRbObject:0x1fe5388 と # が 食い違っているのが問題のように思います。 リモート、ローカルの区別なくメソッドを呼べるのであれば、添付のfw_ps_nenga.rbで 定義されている [] を呼べると思うのですが、どうでしょうか? M.Kanemitsu ——————————————— 金光雅夫 masao-k@a-net.email.ne.jp http://www.masao-k.net http://isweb14.infoseek.co.jp/art/soshikon/ http://isweb15.infoseek.co.jp/computer/ruby256/ http://www.masao-k.net/tDiary/ http://www.masao-k.net/RubyBook/ 〒216-0031 川崎市宮前区神木本町5-14-12 自宅: 044-877-5006 携帯: 090-2753-5292 -- "I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." -Alan Kay --------_3DC6089CADF404D2D090_MULTIPART_MIXED_ Content-Type: application/octet-stream; name="fw_ps_nenga.rb" Content-Disposition: attachment; filename="fw_ps_nenga.rb" Content-Transfer-Encoding: base64 cmVxdWlyZSAnZmx5YXdheScNCnJlcXVpcmUgJ3BzdG9yZScNCg0KY2xhc3MgTmVuZ2ENCiAgaW5j bHVkZSBGbHl3ZWlnaHRGYWN0b3J5DQogIA0KICBAQGRiID0gUFN0b3JlLm5ldygiYzovbmVuZ2Ei KQ0KICANCiAgZGVmIGluaXRpYWxpemUobmVuZG8pICAjIJROk3gNCiAgICBzdXBlcihuZW5kbykN CiAgICBAbmVuZG8gPSBuZW5kbw0KICAgIA0KICAgIEBAZGIudHJhbnNhY3Rpb24gZG8NCiAgICAg IHVubGVzcyBAQGRiLnJvb3Q/KG5lbmRvKQ0KICAgICAgICBAQGRiW25lbmRvXSA9IFtdDQogICAg ICBlbmQNCiAgICAgIEB2YWx1ZSA9IEBAZGJbbmVuZG9dDQogICAgICBAQGRiLmNvbW1pdA0KICAg IGVuZA0KICBlbmQNCiAgDQogIGRlZiBbXShrKQ0KICAgIEBAZGIudHJhbnNhY3Rpb24gZG8NCiAg ICAgIEB2YWx1ZVtrXQ0KICAgIGVuZA0KICBlbmQNCiAgDQogIGRlZiBbXT0oaywgdikNCiAgICBA QGRiLnRyYW5zYWN0aW9uIGRvDQogICAgICBAdmFsdWVba10gPSB2DQogICAgZW5kDQogICAgQEBk Yi5jb21taXQNCiAgZW5kDQplbmQNCg== --------_3DC6089CADF404D2D090_MULTIPART_MIXED_--