[#42624] Ruby インストールできません — 水野 あゆみ <chaaneko@...>
Ruby超初心者です。
9 messages
2006/08/07
[#42629] Re: Ruby インストールできません
— Takahiro Kambe <taca@...>
2006/08/07
In message <20060807042520.90137.qmail@web3002.mail.tnz.yahoo.co.jp>
[#42643] メールのSMTP認証の方法(質問) — "Hisashi Yahata" <yahatah@...>
お世話になります。
34 messages
2006/08/09
[#42645] Re: メールのSMTP認証の方法(質問)
— WATANABE Tetsuya <Tetsuya.WATANABE@...>
2006/08/09
渡辺哲也です。
[#42649] Re: メールのSMTP認証の方法(質問)
— OHARA Shigeki <os@...>
2006/08/09
大原です。
[#42650] Re: メールのSMTP認証の方法(質問)
— "Hisashi Yahata" <yahatah@...>
2006/08/09
大原様
[#42651] Re: メールのSMTP認証の方法(質問)
— 植田裕之 <ueda@...>
2006/08/09
植田と申します。
[#42654] Re: メールのSMTP認証の方法(質問)
— "Hisashi Yahata" <yahatah@...>
2006/08/09
植田 裕之様
[#42655] Re: メールのSMTP認証の方法(質問)
— 植田裕之 <ueda@...>
2006/08/09
植田です。
[#42656] Re: メールのSMTP認証の方法(質問)
— "Hisashi Yahata" <yahatah@...>
2006/08/09
植田様
[#42657] Re: メールのSMTP認証の方法(質問)
— WATANABE Tetsuya <Tetsuya.WATANABE@...>
2006/08/09
渡辺哲也です。
[#42659] Re: メールのSMTP認証の方法(質問)
— Kazuhiro NISHIYAMA <zn@...>
2006/08/09
西山和広です。
[#42664] Re: メールのSMTP認証の方法(質問)
— "Hisashi Yahata" <yahatah@...>
2006/08/10
西山和広様
[#42674] Re: メールのSMTP認証の方法(質問)
— Kazuhiro NISHIYAMA <zn@...>
2006/08/11
西山和広です。
[#42665] 組み合わせを作るrubyらしい方法 — しん <dezawa@...>
出沢です
7 messages
2006/08/10
[#42682] Javaの interfaceのようなもの — Yuumi Yoshida <yuumi3@...>
こんにちは、 yuumi3です。
5 messages
2006/08/13
[#42690] StringScanner と case の相性 & メソッド上書きの方法 — take_tk <ggb03124@...>
たけ(tk)です
7 messages
2006/08/15
[#42691] リンクを抜き出す正規表現について — Yosuke Suzuki <yosuke@...>
suzukiといいます。
10 messages
2006/08/15
[#42693] in演算子の提案 — <rubyist@...>
はじめまして。diceと申します。
8 messages
2006/08/15
[#42715] n次元配列#each_index — Sato Hiroshi <hirocy.f01@...>
hirocyです.
4 messages
2006/08/17
[#42720] ベクターに登録されている Windows 用Rubyバイナリ — KIMURA Koichi <kbk@...>
木村です。
6 messages
2006/08/18
[#42724] エスケープシーケンスの画面制御について — リックス <rubyer4649@...>
りっくすです
7 messages
2006/08/19
[#42737] rexmlでのUTF-16の扱いについて — 石田 三英 <ishida@...>
石田と申します。
9 messages
2006/08/22
[#42758] eval substirution with variable — KIRIYAMA Kazuhiko <kiri@...>
桐山です.
6 messages
2006/08/28
[#42765] ?がメソッド名の途中にあるのはNG? — Daisuke Yamazaki <yamajaki@...>
こんにちは.山崎です.
6 messages
2006/08/29
[ruby-list:42684] Re: Javaの interfaceのようなもの
From:
rubikitch <rubikitch@...>
Date:
2006-08-13 03:57:03 UTC
List:
ruby-list #42684
From: murayama <locutus@pg8.so-net.ne.jp>
Subject: [ruby-list:42683] Re: Javaの interfaceのようなもの
Date: Sun, 13 Aug 2006 12:25:22 +0900
るびきちです。
> ・「スーパークラス」で必要なメソッドを全部定義し、例外を投げるように記述する。
> (それらのメソッドはサブクラスで適切にオーバーライドすることが前提。)
ちょいやってみました。
module_evalは言語レベルでどうにかするのにとても便利…柔軟性万歳。
使い方はスーパークラス側でextendします。
class NotImplemented < Exception; end
module MustImplement
def must_implement(*methods)
methods.each do |meth|
module_eval %{
def #{meth}(*args)
raise NotImplemented, "Method `#{meth}' must be implemented in subclass."
end
}
end
end
end
require 'test/unit'
class TestMustImplement < Test::Unit::TestCase
# sample usage
class Base
extend MustImplement
must_implement :foo, :bar
end
class NotImplementedClass < Base
end
class ImplementedClass < Base
def foo
"implemented"
end
def bar
"implemented"
end
end
# /sample usage
def test_not_implemted_class
assert_raise(NotImplemented) { NotImplementedClass.new.foo }
end
def test_base
assert_raise(NotImplemented) { Base.new.foo }
end
def test_implemented_class
assert_equal("implemented", ImplementedClass.new.foo)
assert_equal("implemented", ImplementedClass.new.bar)
end
end
> ・起動時に、そのクラスのサブクラス一覧を取得し(これの取得方法はアプリ依存?
> それともリフレクションとかで可能?)、それらサブクラス全てについて上記に該当する
> メソッドを全て呼び出し、例外が出ないことを確認させる。(コンパイルエラーに相当。)
これはユニットテストでカバーできるのではないでしょうか?
--
rubikitch
http://www.rubyist.net/~rubikitch/