[#29469] エラーを捕まえたいのですが ... — Sakae Kobayashi <sakae@...>

困った時に出てくる、小林榮です。

12 messages 2001/05/01

[#29490] Re: [ruby-talk:14555] Ruby as a Mac OS/X scripting language — maili31s@... (SugHimsi == SUGIHARA Hiroshi)

すぎむし速報。↓だそうです。

12 messages 2001/05/02

[#29524] tr range? — kiri@...

桐山です。

17 messages 2001/05/06
[#29526] Re: tr range? — Koji Arai <JCA02266@...> 2001/05/06

新井です。

[#29644] rwiki.rb でエラー — norio goto <goto@...>

お世話になります、後藤@横河工事です。

18 messages 2001/05/14
[#29645] Re: rwiki.rb でエラー — m_seki@... 2001/05/14

[#29646] Re: rwiki.rb でエラー — norio goto <goto@...> 2001/05/14

後藤@横河工事です。

[#29675] with(obj){ } が欲しい。 — Take_tk <ggb03124@...>

例によって、ワタシ好みののりクエストですみません。

24 messages 2001/05/15
[#29694] Re: with(obj){ } が欲しい。 — "K.Kosako" <kosako@...> 2001/05/17

Take_tkさんの<20010515205133.DFBA.GGB03124@nifty.ne.jp>から

[#29707] OBJECT DAY2001 — "K.Kosako" <kosako@...>

OBJECT DAY2001から帰ってきました。

71 messages 2001/05/18
[#29712] Re: OBJECT DAY2001 — matz@... (Yukihiro Matsumoto) 2001/05/18

まつもと ゆきひろです

[#29719] Re: OBJECT DAY2001 — WATANABE Tetsuya <tetsu@...> 2001/05/21

渡辺哲也です。

[#29731] YARPC 19101 (Re: OBJECT DAY2001) — TAKAHASHI Masayoshi <maki@...> 2001/05/21

YARPC関連で動いてお騒がせしている(_o_)高橋征義です。

[#29792] Re: YARPC 19101 — akira yamada / やまだあきら <akira@...> 2001/05/27

[#29794] Re: YARPC 19101 — Minero Aoki <aamine@...> 2001/05/27

あおきです。

[#29803] Re: YARPC 19101 — Hiroshi IGARASHI <iga@...> 2001/05/27

いがらしです。

[#29721] Cygwin で Ruby をコンパイルするとエラーがでます。 — "Inoue" <inoue@...>

はじめまして、最近Rubyをはじめました井上と申します。

10 messages 2001/05/21

[#29788] marshaled time format differ — IWATSUKI Hiroyuki <don@...>

岩月と申します。

19 messages 2001/05/25
[#29789] Re: marshaled time format differ — matz@... (Yukihiro Matsumoto) 2001/05/25

まつもと ゆきひろです

[#29790] Re: marshaled time format differ — IWATSUKI Hiroyuki <don@...> 2001/05/26

岩月と申します。

[#29823] Re: marshaled time format differ — IWATSUKI Hiroyuki <don@...> 2001/05/27

岩月と申します。

[#29853] "" で行われる展開を eval 無しで… — ABE Shigeru <shiger-a@...>

 みなさま、はじめまして。阿部といいます。

17 messages 2001/05/28
[#29854] Re: "" で行われる展開を eval 無しで… — rubikitch <rubikitch@...> 2001/05/28

From: ABE Shigeru <shiger-a@nifty.com>

[#29941] Ruby ライセンスについて — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

38 messages 2001/05/31
[#29942] Re: Ruby ライセンスについて — Takahiro Kambe <taca@...> 2001/05/31

In message <991297854.779223.23013.nullmailer@ev.netlab.zetabits.com>

[#29944] Re: Ruby ライセンスについて — "Akinori MUSHA" <knu@...> 2001/05/31

At Thu, 31 May 2001 18:00:18 +0900,

[ruby-list:29910] Re: module::method() と methid() の違いは ?

From: 岡 保嗣 <oka@...>
Date: 2001-05-31 01:57:01 UTC
List: ruby-list #29910
岡です。
みなさん、回答ありがとうございます。
おかげさまで理解できたと思います。

CntAcc::init_cnt(sock) はCntAcc.init_cnt(sock)と同義で、
CntAccというオブジェクトにinit_cnt()メソッドを送っている。
init_cnt(sock)はトップレベルのmainオブジェクトにinit_cnt()
を送っているわけですね。
(「クラスもモジュールもオブジェクト」というのが実感できました)

「CntAcc::init_cnt()」を「CntAccで定義されているinit_cnt
メソッド」と読んでいたのが勘違いのもとだったようです。

モジュール内のメソッドをモジュールメソッドに格上げ
して、CntAcc::send_apmsg()を使うようにするという解決
方法もあるような気がします。
でも、モジュールを他の人に使ってもらったときに、
includeされて、send_apmsg()を使われてしまい、トラブルに
なりそう。
やはり、クラス変数を使って、どう使われても大丈夫なように
しておくのがよさそうです。
制御線を複数にするなら、@@targetをハッシュにして、send_apmsgに
相手を特定するkeyを付与すればよさそう(ちょっと違和感があるんだけど)。

どうもありがとうございました。
/OKA

----------------------------------------------
require 'thread'
require 'socket'

# 制御対象を示すクラス
class Control
  def initialize(line)
    @control_line = line # 制御線
  end
  def send_msg(msg)
    @control_line << msg # 制御線にmsgを送る
  end
end

# send_msgをレシーバ無しで使うためのモジュール
module CntAcc
  def init_cnt(line)
    print "init_cbt():"
    @@target = Control.new(line)
  end
  def send_apmsg(msg)
    print "send_apmsg():"
    p self
    @@target.send_msg(msg)
  end
  module_function :init_cnt, :send_apmsg # モジュールメソッド化
end

class Event
  include CntAcc
  def initialize(msg, timer)
    Thread.new do
      sleep timer
      send_apmsg(msg)  # 別のクラスの中でも使える
    end
  end
end

include CntAcc

sock = TCPSocket.new('localhost', 11110) # 相手はいるとして
CntAcc::init_cnt(sock)
CntAcc::send_apmsg("ujauja") # これもOK
send_apmsg("ujauja") # こちらもOK

Event.new("3秒後\n", 3)
Event.new("5秒後\n", 5)
Event.new("7秒後\n", 7)
sleep 10

In This Thread

Prev Next