From: Daniel DeLorme Date: 2006-07-14T10:03:15+09:00 Subject: Re: Preferred monkeypatching technique Tom Werner wrote: > Allow me to present a scenario: > > class Firetruck > def put_out_fire(options = {}) > # code > end > end Here's what I'd do to keep it clean: module FastFiretruck def initialize(*args) super self.extend FastFiretruck::Obj end module Obj def put_out_fire(options = {}) super({:fast => "please!"}.merge(options)) end end end Firetruck.class_eval{ include FastFiretruck } Daniel