[#44578] Ruby初心者が作りました — Kabu and Ruby管理人 <kabu_and_ruby@...>

http://www.geocities.jp/kabuandruby/index.html

26 messages 2008/02/06

[#44691] ”Rubyアプリケーションプログラミング”の伝言サーバの使い方 — "Yangkook Kim" <yangkookkim@...>

キムと申します。オーム社から出版されている書籍、"Rubyアプリケーションプログラミング"のP267~275に掲載されている伝言サーバー&クライアントの利用の仕方がわかりません。質問を要約すると次の2点です。1、サーバーが正常に起動されているかどうかわからない。2、書き込みクライアントで入力をサーバーに送信する方法がわからない。

8 messages 2008/02/24

[ruby-list:44555] Re: include

From: KURODA Hiraku <hiraku@...>
Date: 2008-02-02 08:20:52 UTC
List: ruby-list #44555
こんにちは、黒田ひらくと申します。

Masatoshi SEKI さんは書きました:
> トップレベル(?)でincludeを使うと、どのオブジェクトも
> モジュールに定義されているメソッドを呼べてしまう
> のでしょうか?

http://www.ruby-lang.org/ja/man/html/Ruby_CDD1B8ECBDB8.html#main
によると、トップレベルのselfはObjectクラスのインスタンスですが、特異メソッドとしてinclude等が定義さ
れているそうです。
このmain#includeを実行するとObject.includeと同様の効果があるので、その結果、全てのオブジェクトでイ
ンクルードしたモジュールのメソットが呼べるようになるようです(全てのクラスはObjectクラスのサブクラス
なので)。

---ソース---
#!/usr/bin/ruby
puts self, self.class
module M
   def self.included(by)
      puts "M included by #{by}"
   end
end
include M
puts Object.included_modules
--------
---出力----
main
Object
M included by Object
M
Kernel
--------

-- 
--------------------------------------------------
 黒田 拓(くろだ ひらく)
    hiraku@sapporo.email.ne.jp
    http://www.hinet.mydns.jp/
--------------------------------------------------

In This Thread