まつもと ゆきひろです

In message "[ruby-list:9463] Re: inspect の動作"
    on 98/09/06, Makoto Tagusari <mtag / ca2.so-net.or.jp> writes:

|皆さんこんにちは、田鎖です。
|
|ruby-1.1c4 試してみました。問題無く動きます。関係者の皆さん どうもあり
|がとうございました。

そりはよかった.

|所で、jcode.rb を require すると以下の動きが違ってきます。

|jcode.rb あり
|
|"".delete "a" # "a" は、何でも良い
|(戻り) nil

|とりあえず、私は、jcode.rb の該当箇所の最後に xx.to_s して逃げています
|が、どこを直すのが正しいのでしょうか。

jcode.rbのバグと考えるべきでしょう.むかし,delete!などの挙
動が変わった時にjcode.rbの対応を忘れたのが原因です.パッチを
付けておきます.

--- jcode.rb	1998/04/09 09:58:00	1.1.1.1.4.3
+++ jcode.rb	1998/09/07 01:42:06
@@ -60,2 +60,11 @@
 
+  def _debang(str)
+    if str == nil
+      self
+    else
+      str
+    end
+  end
+  private :_debang
+    
   def _expand_ch
@@ -106,3 +115,3 @@
   def tr(from, to)
-    self.dup.tr!(from, to)
+    _debang(self.dup.tr!(from, to))
   end
@@ -129,3 +138,3 @@
   def delete(del)
-    self.dup.delete!(del)
+    _debang(self.dup.delete!(del))
   end
@@ -157,3 +166,3 @@
   def squeeze(del=nil)
-    self.dup.squeeze!(del)
+    _debang(self.dup.squeeze!(del))
   end
@@ -190,3 +199,3 @@
   def tr_s(from, to)
-    self.dup.tr_s!(from,to)
+    _debang(self.dup.tr_s!(from,to))
   end
@@ -204,3 +213,3 @@
   def chop
-    self.dup.chop!
+    _debang(self.dup.chop!)
   end