Hi. I''ve placed the following in lib/mods.rb: class String def String.foo "bar" end def bar "baz" end end But it does not get picked up: white:~/svn/tagticks morten$ script/console Loading development environment. >> String.foo NoMethodError: undefined method `foo'' for String:Class from (irb):1 >> "fdsfs".foo NoMethodError: undefined method `foo'' for "fdsfs":String from (irb):2 >> "fdsfs".bar NoMethodError: undefined method `bar'' for "fdsfs":String from (irb):3 What''s the appropriate way to extend a ruby class for a rails app? Thanks. Morten
Morten wrote:> > Hi. > > I''ve placed the following in lib/mods.rb: > > class String > def String.foo > "bar" > end > > def bar > "baz" > end > end > > But it does not get picked up: > > white:~/svn/tagticks morten$ script/console > Loading development environment. > >> String.foo > NoMethodError: undefined method `foo'' for String:Class > from (irb):1 > >> "fdsfs".foo > NoMethodError: undefined method `foo'' for "fdsfs":String > from (irb):2 > >> "fdsfs".bar > NoMethodError: undefined method `bar'' for "fdsfs":String > from (irb):3 > > > What''s the appropriate way to extend a ruby class for a rails app? > > Thanks. > > Morten > > > > _______________________________________________ > Rails mailing list > Rails@lists.rubyonrails.org > http://lists.rubyonrails.org/mailman/listinfo/rails >You must require mods somewhere in your rails code. Try adding require ''mods'' to your environment.rb, for example. It''s only models and a few other things that gets loaded automagically. -- Ola Bini (http://ola-bini.blogspot.com) JvYAML, RbYAML, JRuby and Jatha contributor System Developer, Karolinska Institutet (http://www.ki.se) OLogix Consulting (http://www.ologix.com) "Yields falsehood when quined" yields falsehood when quined.
>> >> What''s the appropriate way to extend a ruby class for a rails app? >> > > You must require mods somewhere in your rails code. Try adding > require ''mods'' > to your environment.rb, for example. It''s only models and a few other > things that gets loaded automagically. >Excellent, I added the following to environment.rb and now it works. require File.join("#{RAILS_ROOT}/lib", ''mods'') Thanks Ola. Morten
On 7/17/06, Morten <lists@kikobu.com> wrote:> What''s the appropriate way to extend a ruby class for a rails app?The preferred route that most people take is to bundle the modifications as a plugin and require the necessary files in the plugin''s init.rb. See Top-Funky''s excellent tutorial for more info: http://nubyonrails.com/articles/2006/05/04/the-complete-guide-to-rails-plugins-part-i Josh -------------- next part -------------- An HTML attachment was scrubbed... URL: http://wrath.rubyonrails.org/pipermail/rails/attachments/20060717/d0e1ce51/attachment.html