From: "Jesús Gabriel y Galán" Date: 2011-10-26T23:14:07+09:00 Subject: Re: Modify only a .rb file, but not other .rb files, while still extending core classes? On Wed, Oct 26, 2011 at 4:04 PM, Marc Heiler wrote: > Given is a small .rb file. > > In that .rb file, class Array is modified and a convenience > method is added. > > class Array > >  def rand > > I want to limit this modification to only that specific > .rb file though. > > When I use that .rb file in a larger project, I do not want > the modification of class Array to leak out into other .rb > files. Is there a way to limit the scope of the modification? > > Of course I can define a method simply and call that, but: > >  array.rand > > Looks better to my eyes than: > >  rand(array) > > So I would prefer to be able to do only the array.rand. One solution would be to create a module with the rand method, and extend only the arrays you use in that .rb: # small.rb module Randomizable def rand # your implentation end end some_elements = [1,2,3,4,5] some_elements.extend(Randomizable) some_elements.rand All other arrays in the system will not be affected. Jesus.