[Chirb] Question...

Paul Gross pgross at gmail.com
Mon Jun 30 08:10:43 EDT 2008


I'm not sure if it's the only convention, but on my projects at 
ThoughtWorks, we put all of our modifications into a folder called 
core_ext.  Each class modification gets one file, such as 
string_extension.rb, object_extension.rb, etc.  We create modules and 
include them on the original class (as mentioned in Jay's linked post).

Then, somewhere in the application, we have code to include them all like:

Dir.glob(File.expand_path('/some/path/to/core_ext/*')).each do |ext|
  require ext
end

For rails, we made this an initializer.

Thanks,
Paul Gross


Nate Kirby wrote:
> All,
>
> I feel kind of like a ruby nubie saying this, but all of my work in 
> ruby has been in rails.  I just got some work that does not require 
> rails.  When I work in rails, whenever metaprogramming is used to 
> change the behavior of say String#length, it has gone in 
> application.rb, so all those kinds of behavoir changes have been easy 
> to locate.  However, now, when working without rails, these kinds of 
> things go... well I assume there must be a ruby convention for this.  
> I have found http://rubygarden.org/ruby/page/show/RubyStyleGuide and 
> http://blog.jayfields.com/2007/01/class-reopening-hints.html but am 
> unsure that the real ruby convention for changing a previously defined 
> classes' behavior is clear.
>
> Does anyone out there know the right answer?  Where do class 
> redefinitions go according to ruby conventions?
>
> TIA,
> Nate
>
>
> _______________________________________________
> ChicagoGroup-Members-List at rubyforge.org
> http://rubyforge.org/mailman/listinfo/chicagogroup-members-list


More information about the ChicagoGroup-Members-List mailing list