From: dblack@... Date: 2002-09-19T22:49:29+09:00 Subject: Re: Is better to subclass or to add methods to an existing class? Hi -- On Thu, 19 Sep 2002, Jim Freeze wrote: > On Thu, Sep 19, 2002 at 09:20:13PM +0900, Vincent Foley wrote: > > > > Can you enligthen me and tell me if it's really that bad an idea to add > > methods to an existing class, or if he's just being a Python zealot? > > > > I think it could be considered bad because it can produce > alergic reactions between libraries. Clearly this is a serious problem, though at the same time I think the power of all this is just too great to go unused. This is where the (stagnated, I'm afraid) Ruby Behaviors package comes in. I have to regard it as proof-of-concept more than anything else... but anyway: class String def rot13 "first version" end end require 'behaviors-0.0.1/lib/behaviors.rb' class Behavior class ROT13 < Definer def start rot13 = "def rot13; 'behaviors version'; end" define(String, "rot13", rot13) end end end b = Behavior.new(:ROT13) puts "abc".rot13 b.adopt { puts "abc".rot13 } # block form of adopt puts "abc".rot13 # => # first version # behaviors version # first version David -- David Alan Black | Register for RubyConf 2002! home: dblack@candle.superlink.net | November 1-3 work: blackdav@shu.edu | Seattle, WA, USA Web: http://pirate.shu.edu/~blackdav | http://www.rubyconf.com