From: Jim Freeze Date: 2005-07-26T07:43:29+09:00 Subject: What's so special about operators, built-in classes and modules? I just noticed this little quirk. Is there something I am doing wrong? module Mod def *(other) puts "#{self} * #{other}" end end class String include Mod end "ff" * 5 #=> nothing But, if I add the method explicitly instead of through a module I get: class String #include Mod def *(other) puts "#{self} * #{other}" end end "ff" * 5 #=> "ff" * 5 This seems to be a quirk (bug?) and only happens when mixing modules, built in classes (like Array) and operator methods. Mixing in a module works fine with the combinations: Non built-in class, operators Built-in class, non operator method -- Jim Freeze