金光です。旅行中、AirH"がつながらず難儀。ご返事おそくなりすみません。

On Tue, 5 Nov 2002 05:24:38 +0900
rubikitch <rubikitch / ruby-lang.org> wrote:

> From: 金光雅夫 (KANEMITSU Masao) <masao-k / a-net.email.ne.jp>
> Subject: [ruby-list:36322] Re: Flyaway
> Date: Mon, 4 Nov 2002 13:16:00 +0900
> 
> > > Nengaに[]メソッドが定義されていないと書いてあるようです。
> > > 本当は定義してあるのでしょうか?
> 
> ざっとみたところ
> 
> class Atesaki
>   def initialize(nendo)  # 年度
>   def [](k)
>   def []=(k, v)
>   end
> end
> 
> fw_ps_ate.rbが↑のような感じで、fwid_srv.rbが
> 
> class Atesaki
>   include DRbUndumped
>   include FWIdMod
> end
> 
> class Front
>   def [](key)
>     return Atesaki[key]
>   end
> end
> 
> では、Atesaki.[]は未定義でしょ。
> Atesaki#[]は定義されていますが。
> そもそもデータが入っていない状態ですし。
> 
> るびきち☆
> http://www.ruby-lang.org/~rubikitch/ ←Ruby大衆化計画(笑)

う〜ん 現在は、

fw_ps_nenga.rbが↓
──────────────────────────────────────
require 'flyaway'
require 'pstore'

class Nenga
  include FlyweightFactory
  
  @@db = PStore.new("c:/nenga")
  
  def initialize(nendo)  # 年度
    super(nendo)
    @nendo = nendo
    
    @@db.transaction do
      unless @@db.root?(nendo)
        @@db[nendo] = []
      end
      @value = @@db[nendo]
      @@db.commit
    end
  end
  
  def [](k)
    @@db.transaction do
      @value[k]
    end
  end
  
  def []=(k, v)
    @@db.transaction do
      @value[k] = v
    end
    @@db.commit
  end
end
──────────────────────────────────────


fwid_srv.rbが↓
──────────────────────────────────────
require 'flyaway'
require 'drb/drb'
require 'fw_ps_nenga'
require 'fwidconv'
require 'Nenga-uri'

class Nenga
  include DRbUndumped
  include FWIdMod
  
  def initialize
    super
    @array = []
  end
  
  def [](key)
    return @array[key]
  end
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
──────────────────────────────────────


となっています。でもって、実行すると、Nenga['2002'] の参照を終えたあと
ハング。

しょうがないので、pstoreを使うのを断念して、dRuby本のプログラムのままの版で
やってみようかと思っているのですが、そういう問題ではないのでしょうか。


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