[#18233] [book] blade.nagaokaut.ac.jp/ruby/ruby-list/ — Shin-ichiro Hara <sinara@...>

原です。

21 messages 1999/11/01
[#18239] [book] csv_split2 [Re: blade.nagaokaut.ac.jp/ruby/ruby-list/] — keiju@... (石塚圭樹) 1999/11/01

けいじゅ@日本ラショナルソフトウェアです.

[#18244] Re: [book] csv_split2 [Re: blade.nagaokaut.ac.jp/ruby/ruby-list/] — Shin-ichiro Hara <sinara@...> 1999/11/01

原です。

[#18289] Re: [book] csv_split2 — Koretsugu Daigoro <tmmcross@...> 1999/11/02

これつぐです。

[#18291] Re: [book] csv_split2 — keiju@... (石塚圭樹) 1999/11/02

けいじゅ@日本ラショナルソフトウェアです.

[#18311] Re: [book] csv_split2 — Koretsugu Daigoro <tmmcross@...> 1999/11/02

これつぐです。

[#18338] オブジェクトの非同一性判定 — Ayanosuke <aya@...>

 綾乃介です。

13 messages 1999/11/03

[#18539] [book] $*, etc. — Yasuhiro Fukuma <yasuf@...>

福間@福岡 です。

44 messages 1999/11/11

[#18580] — tokoma@... (中川 誠)

中川です。

44 messages 1999/11/14
[#18619] build on alpha — Go Nakagawa <nakagawa@...> 1999/11/15

もとの質問のかたとは別の中川です。

[#18737] Re: build on alpha — tokoma@... (中川 誠) 1999/11/18

中川です。

[#19144] Re: build on alpha — tokoma@... (中川 誠) 1999/12/04

中川です。長文で失礼します。

[#19341] Re: build on alpha — tokoma@... (中川 誠) 1999/12/09

中川です。

[#19344] Re: build on alpha — matz@... (Yukihiro Matsumoto) 1999/12/09

まつもと ゆきひろです

[#19400] Re: build on alpha — tokoma@... (中川 誠) 1999/12/10

中川です。

[#19426] Re: build on alpha — EGUCHI Osamu <eguchi@...> 1999/12/11

えぐち@エスアンドイー です。

[#19459] Re: build on alpha — tokoma@... (中川 誠) 1999/12/13

中川です。

[#19461] Re: build on alpha — EGUCHI Osamu <eguchi@...> 1999/12/13

えぐち@エスアンドイー です。

[#19506] Re: build on alpha — tokoma@... (中川 誠) 1999/12/14

中川です。

[#19520] Re: build on alpha — EGUCHI Osamu <eguchi@...> 1999/12/15

えぐち@エスアンドイー です。

[#19522] Re: build on alpha — matz@... (Yukihiro Matsumoto) 1999/12/15

まつもと ゆきひろです

[#19543] Re: build on alpha — EGUCHI Osamu <eguchi@...> 1999/12/15

えぐち@エスアンドイー です。

[#19562] Re: build on alpha — tokoma@... (中川 誠) 1999/12/15

中川です。

[#19569] Re: build on alpha — EGUCHI Osamu <eguchi@...> 1999/12/16

えぐち@エスアンドイー です。

[#19592] Re: build on alpha — tokoma@... (中川 誠) 1999/12/16

中川です。

[#18637] constant? — Kazuhiro Yoshida <moriq.kazuhiro@...>

もりきゅうです。

20 messages 1999/11/16
[#18640] Re: constant? — WATANABE Hirofumi <Hirofumi.Watanabe@...> 1999/11/16

わたなべです.

[#18650] Re: constant? — Kazuhiro Yoshida <moriq.kazuhiro@...> 1999/11/16

もりきゅうです。

[#18657] Re: constant? — matz@... (Yukihiro Matsumoto) 1999/11/16

まつもと ゆきひろです

[#18709] ADO にて datetime 型の取得 — Takashi SHIODA <tsio@...>

塩田です。

18 messages 1999/11/18
[#18779] Re: ADO にて datetime 型の取得 — Masaki Suketa<CQN02273@...> 1999/11/20

助田です.

[#18802] Re: ADO にて datetime 型の取得 — Takashi SHIODA <tsio@...> 1999/11/21

オレンジソフト塩田です。

[#18712] Re: header output in eruby — TAKEUCHi Kahori <take-k@...>

たけうちです。

16 messages 1999/11/18
[#18716] Re: header output in eruby — "NAKAMURA, Hiroshi" <nakahiro@...> 1999/11/18

なひです.

[#18830] mod_ruby-0.1.4 — TAKAHASHI Masayoshi <maki@...>

高橋征義です。

16 messages 1999/11/22

[#18853] initializer polymorphism? — Takeyuki Watadani <watadani@...>

渡谷といいます。

25 messages 1999/11/23

[#18911] Re: eRuby 変換後の無駄 (?) な改行 — TAKEUCHi Kahori <take-k@...>

たけうちです。

14 messages 1999/11/25

[#18914] Ruby standard GUI framework? — Hideto ISHIBASHI <s34204@...>

石橋秀仁です。

43 messages 1999/11/25
[#18975] Re: Ruby standard GUI framework? — 中村暁史 Nakamura Akifumi <BXQ04723@...> 1999/11/27

[#19020] Re: Ruby standard GUI framework? — Hideto ISHIBASHI <s34204@...> 1999/11/29

石橋秀仁です。

[#19026] Re: Ruby standard GUI framework? — Noritsugu Nakamura <nnakamur@...> 1999/11/29

[#19081] Re: Ruby standard GUI framework? — "Hideaki Takata" <hideakit@...3.dion.ne.jp> 1999/12/01

たかたです。

[#19092] Re: Ruby standard GUI framework? — Noritsugu Nakamura <nnakamur@...> 1999/12/01

[#19112] Re: Ruby standard GUI framework? — 中村暁史 Nakamura Akifumi <BXQ04723@...> 1999/12/02

[#19131] Re: Ruby standard GUI framework? — Noritsugu Nakamura <nnakamur@...> 1999/12/03

[#18948] 他言語との比較 — とみたまさひろ <tommy@...>

とみたです。

18 messages 1999/11/26

[ruby-list:18308] DRb|drb|druby + iterator

From: Masatoshi SEKI <m_seki@...>
Date: 1999-11-02 15:45:28 UTC
List: ruby-list #18308
咳といいます。

Ruby本、昨日ASCII CEで注文しました。
ruby-listの話題に取り残されていてさびしいです。


pdfのyieldの説明をみながら drb.rb でもイテレータが
扱えるようにいじってみました。
ローカル側のイテレータのブロックをProcにして
DRbObjectで包んでリモート側に与て実現してます。
# 効率悪そう

each や collect みたいなのは動くようになったのですが、
イテレータのブロック中でのbreakやnextなどがうまく対応
できません。いい方法はないかな。


以下 drb.rb に対するパッチです。
http://www2a.biglobe.ne.jp/~seki/ruby/druby-beta.tar.gz にも
置きますです。


Index: drb.rb
===================================================================
RCS file: /home/mas/lib/cvsroot/labo/ruby/druby/drb.rb,v
retrieving revision 1.5
retrieving revision 1.6
diff -c -r1.5 -r1.6
*** drb.rb	1999/10/26 14:51:07	1.5
--- drb.rb	1999/11/02 15:16:44	1.6
***************
*** 2,8 ****
  =begin
   Tiny distributed Ruby --- dRuby 1.0
   	Copyright (c) 1999 Masatoshi SEKI 
! 	$Id: drb.rb,v 1.5 1999/10/26 14:51:07 mas Exp $ 
   DRb --- dRuby module.
   DRbUndumped --- Mixin class. 
   DRbProtocol --- Mixin class.
--- 2,8 ----
  =begin
   Tiny distributed Ruby --- dRuby 1.0
   	Copyright (c) 1999 Masatoshi SEKI 
! 	$Id: drb.rb,v 1.6 1999/11/02 15:16:44 mas Exp $ 
   DRb --- dRuby module.
   DRbUndumped --- Mixin class. 
   DRbProtocol --- Mixin class.
***************
*** 62,74 ****
      return str
    end
  
!   def send_request(soc, ref,msg_id, *arg)
      dump(ref, soc)
      dump(msg_id.id2name, soc)
      dump(arg.length, soc)
      arg.each do |e|
        dump(e, soc)
      end
    end
    
    def recv_reply(soc)
--- 62,75 ----
      return str
    end
  
!   def send_request(soc, ref,msg_id, *arg, &b)
      dump(ref, soc)
      dump(msg_id.id2name, soc)
      dump(arg.length, soc)
      arg.each do |e|
        dump(e, soc)
      end
+     dump(b, soc)
    end
    
    def recv_reply(soc)
***************
*** 85,91 ****
      argc.times do
        argv.push Marshal::load(soc)
      end
!     [ro, msg, argv]
    end
  
    def send_reply(soc, succ, result)
--- 86,93 ----
      argc.times do
        argv.push Marshal::load(soc)
      end
!     block = Marshal::load(soc)
!     [ro, msg, argv, block]
    end
  
    def send_reply(soc, succ, result)
***************
*** 109,125 ****
      @ref = obj.id if obj
    end
  
!   def method_missing(msg_id, *a)
      if @uri == DRb.uri
        if @ref
  	obj = ObjectSpace._id2ref(@ref)
        else
  	obj = DRb.front
        end
!       return obj.__send__(msg_id, *a) 
      end
  
!     succ, result = DRbConn.new(@uri).send_message(self, msg_id, *a)
      raise result if ! succ
      result
    end
--- 111,127 ----
      @ref = obj.id if obj
    end
  
!   def method_missing(msg_id, *a, &b)
      if @uri == DRb.uri
        if @ref
  	obj = ObjectSpace._id2ref(@ref)
        else
  	obj = DRb.front
        end
!       return obj.__send__(msg_id, *a) &b
      end
  
!     succ, result = DRbConn.new(@uri).send_message(self, msg_id, *a, &b)
      raise result if ! succ
      result
    end
***************
*** 132,141 ****
      @host, @port = parse_uri(remote_uri)
    end
  
!   def send_message(ref, msg_id, *arg)
      begin
        soc = TCPSocket.open(@host, @port)
!       send_request(soc, ref, msg_id, *arg)
        recv_reply(soc)
      ensure
        soc.close if soc
--- 134,143 ----
      @host, @port = parse_uri(remote_uri)
    end
  
!   def send_message(ref, msg_id, *arg, &block)
      begin
        soc = TCPSocket.open(@host, @port)
!       send_request(soc, ref, msg_id, *arg, &block)
        recv_reply(soc)
      ensure
        soc.close if soc
***************
*** 171,182 ****
        begin
  	s = ns
  	begin 
! 	  ro, msg, argv = recv_request(s)
  	  obj = ro_to_obj(ro)
! 	  result = obj.__send__(msg.intern, *argv)
  	  succ = true
  	rescue
  	  result = $!
  	  succ = false
  	end
  	send_reply(s, succ, result)
--- 173,194 ----
        begin
  	s = ns
  	begin 
! 	  ro, msg, argv, block = recv_request(s)
  	  obj = ro_to_obj(ro)
! 	  if block
! 	    result = obj.__send__(msg.intern, *argv) do |*x|
! 	      block.call(*x)
! 	    end
! 	  else
! 	    result = obj.__send__(msg.intern, *argv)
! 	  end
  	  succ = true
  	rescue
  	  result = $!
+ 	  if $VERBOSE 
+ 	    p $!
+ 	    $@.each do |x| puts x end
+ 	  end
  	  succ = false
  	end
  	send_reply(s, succ, result)

In This Thread

Prev Next