From: Yukihiro Matsumoto Date: 2009-11-15T01:14:49+09:00 Subject: Re: Surprising behavior when extending instances Hi, In message "Re: Surprising behavior when extending instances" on Sat, 14 Nov 2009 23:50:05 +0900, Jim Crossley writes: |This surprised me: | | module English; def say; "yes"; end; end | module French; def say; "oui"; end; end | x = Object.new | x.extend English | x.say # "yes" | x.extend French | x.say # "oui" | x.extend English | x.say # "oui" | |What wrong assumptions am I making that this surprises me? What is |the more elegant "Ruby way" of alternating an object's behavior at |runtime? #extend (and #include) include a module only once. matz.