Henrik schrieb:
> I haven't been able to figure out how to write a destructive string 
> method of my own. How do I change the value of "self"? This is what I 
> tried first:

it makes no sense to change self, but you can change the data of self:

---- test.rb
class String
   def makefirstA
     self[0]= 65
     self
   end
end

x="xxxx"
p x.makefirstA
p x
--- end of test.rb

delivers

ruby test.rb
"Axxx"
"Axxx"





> 
> class String
> 	alias_method(:orig_upcase, :upcase)
> 
> 	def upcase
> 	  orig_upcase.tr("", "")
> 	end
> 
> 	def upcase!
> 	  self = self.upcase
> 	end
> end
> 
> "upcase" works fine but "upcase!" doesn't - "can't change the value of 
> self". Nor can I do (assuming another alias_method):
> 
> 	def upcase!
> 	  self.old_upcase!
> 	  self.tr!("", "")
> 	end
> 
> or the same thing chained (self.old_upcase!.tr!(...)), because that only 
> returns nil. I've even grasped for straws like
> 
> 	def upcase!
> 	  =(self.upcase)
> 	end
> 
> with no luck. Very grateful for any help.
> 


-- 
Mit freundlichen Gren
Fritz Heinrichmeyer FernUniversitt, LG ES, 58084 Hagen (Germany)
tel:+49 2331/987-1166 fax:987-355