[#21718] print, puts, printf — Masaki Suketa<CQN02273@...>
助田です.
[#21732] GtkRadioMenuItem activate — mof <mof@...>
はじめまして、「もふ」といいます。よろしくお願いします。
[#21736] OBJECTDAY 2000 — 助田 雅紀 <masaki.suketa@...>
助田です.
けいじゅ@日本ラショナルソフトウェアです.
石橋秀仁です。
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
石橋秀仁です。
[#21738] ruby の W3C ドラフト — KUBO Takehiro <tkubo@...>
久保@茅ヶ崎市です。
[#21781] how to get error reason in ftplib ? — "Kikutani, Makoto" <kikutani@...>
前にも似たことを聞いた気がしますが....
[#21789] about ftplib(ftpup) — goto@...
お世話になります。後藤@横河工事です。
[#21798] script language magazine? — Akihiro Yamauchi <aygoofy@...>
こんばんは。
[#21818] RubyToken::TkSTRING::value — Yasushi Shoji <yashi@...>
やすしです。
[#21834] How can i use mod_ruby — goto@...
お世話になります。後藤@横河工事です。
[#21837] site_ruby & Linux distribution — OZAWA Sakuro <crouton@...>
小澤さくです。
[#21843] [Q]Security Check($SAFE): FileTest within mod_ruby — Hideto ISHIBASHI <hideto-i@...4u.or.jp>
石橋秀仁です。
[#21870] rubyunit — rubikitch <rubikitch@...>
るびきちです。
[#21892] ユーザーの新規登録方法について — goto@...
いつもお世話になります、後藤@横河工事です。
[#21905] rd-draft.ja.rd — akira yamada / やまだあきら <akira@...>
[#21922] ruby-1.4.4 binary for BeOS 5 (Intel) — tenmei@... (Noriaki Harada)
はらだです。
はじめまして、内藤と申します。
>はじめまして、内藤と申します。
内藤です。
小松です。
再び内藤です。
小松です。
はらだです。
市川 as Tanukiです。
[#21931] ruby-mode — Yasushi Abe <yasushi@...>
こんにちわ、阿部です。
[#21934] close on disk full — "Kikutani, Makoto" <kikutani@...>
curでディスクがフルな状態でPOPするとメイルを失なうという
In message "[ruby-list:21934] close on disk full"
[#21944] [Q] RD with CSS — gotoken@... (GOTO Kentaro)
ごとけんです
Toshです。
[#21956] Thread & STDIN — Masato Toyoshima <mt@...>
はじめまして、豊島といいます。
まつもと ゆきひろです
[#21974] Re: Polynomial.rb and floating point exception — "K.Kodama" <kdm@...>
児玉 です.
[#21981] rd2man — WATANABE Hirofumi <eban@...>
わたなべです.
Toshです。
わたなべです.
青山です。
Toshです。
青山です。
Toshです。
[#21990] rb.org — OZAWA Sakuro <crouton@...>
さくです。
[#21999] media watch 2000.03.18 — Noritsugu Nakamura <nnakamur@...>
[#22014] shell interactive — WATANABE Daisaku <dwata@...3.rim.or.jp>
児玉 です.
こんにちは、時田です。
なかだです。
わたなべです.
こんにちは、時田です。
わたなべです.
まつもと ゆきひろです
Sat, Apr 22, 2000 at 12:37:33AM +0900 において
まつもと ゆきひろです
こんにちは、時田です。
まつもと ゆきひろです
こんにちは、時田です。
[#22022] w3ml — とみたまさひろ <tommy@...>
とみたです。
[#22026] assert — "友谷 登" <ntomo@...>
はじめまして友谷です
[#22069] Re: #define const — Toyofuku <toyofuku@...>
豊福です。
[#22075] erb-1.2.2 — Masatoshi SEKI <m_seki@...>
石橋秀仁です。
[#22087] media watch 2000.03.24 — Noritsugu Nakamura <nnakamur@...>
[#22103] Please put ruby-1.4.4.tar.gz in pub/lang/ruby/1.4/ — "Akinori -Aki- MUSHA" <knu@...>
お願いがあるのですが、 ruby-1.4.4.tar.gz を FTP ツリーの 1.4/
[ruby-list:22103]におきまして、2000/04/25 12:38ほどに、
新井です。
まつもと ゆきひろです
わたなべです.
まつもと ゆきひろです
新井です。
Toshです。
[#22117] StateGraph: state machine interpreter — Hideto ISHIBASHI <hideto-i@...4u.or.jp>
石橋 "rubyholic" 秀仁です。
石橋 "rubyholic" 秀仁です。
やすし % GUI大好きです。
[#22159] $LOAD_PATH への追加について — "Sugawara Hajime" <sugawara@...>
はじめまして、菅原@ホビー・データです。
菅原@ホビー・データです。
[#22164] Directory Cabinet Program — sekita-n@... (Nobutaka SEKITANI)
関谷@電通大です。
[#22171] postgres.c のエラーメッセージ — Saitou Noboru <noborus@...>
まつもと ゆきひろです
[#22181] Can't Use optparse — Yamada Kenji <kyamada@...>
Toshです。
なかだです。
Toshです。
なかだです。
Toshです。
新井です。
新井です。
Toshです。
新井です。
Toshです。
[#22188] Web Robot of Ruby — Ryunosuke Ohshima <ryu@...>
大島@北陸先端科学技術大学院大学です。
[ruby-list:22072] Re: assert
石橋秀仁です。 > 友谷です。 > >実行時にエラーの回復をするためのライブラリです。 > assertion failしたときの扱いはいろいろありそう。 > 1.exit > 2.例外 > 3.デバッグモード(コンソール版) <- 今回いただいたのはこれですね > 4.デバッグモード(GUI版) > 5.デバッガへ(起動して)制御を渡す > > やっぱり5.デバッガへ制御を戻すのがベストですが、 > ・そんなことが可能なのか? > ・Ruby自身が(起動していない状態から)デバッガを起動して制御を渡すことは可能 > か? > という疑問が残ります。 やってみればいいのに :-) それっぽいのはできましたよ。添付します。 これ以上のことを(スマートに)やるなら、 debug.rbの改造が必要ではないでしょうか。 1. assertを実行するコンテキストでrdbを動作させたい。 だから、rdbの動作するbindingを外部から与える機能が欲しい。 # これにより、前回のassert.rbのほうが、今回のrecover.rbよりも便利 (^^) 2. rdbの起動/停止を設定できるスィッチが欲しい。 set_trace_funcで起動/停止するのはスマートではない。 あと、「4.デバッグモード(GUI)」というのは、 ぼくのようなCUI人間は使いませんね。 シリアルターミナル経由でのデバッグにも無効です。 ただし、選択肢を増やす意味では歓迎します。 そういうものが有れば、使う人は必ず出てきます。 # 当然、リカバリー用の「デバッグモード」ではなく、 # debug.rbのGUI版を作ればいいです。一度作れば感謝されます。 # だれか作らないかな(^^; できればTkとGtkで。 -- Hideto "rubyholic" ISHIBASHI
Attachments (2)
module Assert
class AssertionError < StandardError; end
def assert(*args, &block)
return nil unless $DEBUG
__assert__(*args, &block)
end
def __assert__(*args)
return true if yield == true
msg = "assertion failed:"
for arg in args
msg += " " + arg.inspect
end
raise AssertionError, msg
end
def recoverable_assert(*args, &block)
return nil unless $DEBUG
assert_and_recovery(*args, &block)
end
def assert_and_recovery(*args, &block)
begin
return true if __assert__(*args, &block)
rescue
exception = $!
STDOUT.print exception, "\n"
for c in caller(0)
STDOUT.print c, "\n"
end
end
begin
require "debug"
return true if __assert__(*args, &block)
rescue AssertionError
retry
ensure
set_trace_func nil
end
end
end
if __FILE__ == $0
include Assert
orig = "This is a pen."
pen = orig.dup
str = pen
assert("pen == orig ?") {pen == orig}
str.sub!(/a/, "A")
recoverable_assert("pen == orig ?") {pen == orig}
print "recoverd.\n"
end
$ ruby -d recover.rb
assertion failed: "pen == orig ?"
recover.rb:30:in `assert_and_recovery'
recover.rb:21:in `recoverable_assert'
recover.rb:56
recover.rb:37: return true if __assert__(*args, &block)
(rdb:-) n
assertion failed: "pen == orig ?"
from recover.rb:21:in `recoverable_assert'
from recover.rb:56
recover.rb:16: raise AssertionError, msg
(rdb:-)
recover.rb:39: retry
(rdb:-)
recover.rb:36: require "debug"
(rdb:-)
recover.rb:37: return true if __assert__(*args, &block)
(rdb:-) eval("p pen, orig", block)
"This is A pen."
"This is a pen."
(rdb:-) eval("pen.sub!(/A/, 'a')", block)
"This is a pen."
(rdb:-) n
recover.rb:41: set_trace_func nil
(rdb:-)
recoverd.
$ ruby -d recover.rb
assertion failed: "pen == orig ?"
recover.rb:30:in `assert_and_recovery'
recover.rb:21:in `recoverable_assert'
recover.rb:56
recover.rb:37: return true if __assert__(*args, &block)
(rdb:-) n
assertion failed: "pen == orig ?"
from recover.rb:21:in `recoverable_assert'
from recover.rb:56
recover.rb:16: raise AssertionError, msg
(rdb:-)
recover.rb:39: retry
(rdb:-)
recover.rb:36: require "debug"
(rdb:-)
recover.rb:37: return true if __assert__(*args, &block)
(rdb:-)
assertion failed: "pen == orig ?"
from recover.rb:21:in `recoverable_assert'
from recover.rb:56
recover.rb:16: raise AssertionError, msg
(rdb:-) q
really quit? (y/n) y
recover.rb:41: set_trace_func nil
(rdb:-) n