adding methods to native ruby class within rails

hi !

i'd like to add my own method to the ruby string class, do you know how to do this properly in the rails framework?

itkin

Something like this?

"foo".blarg

NoMethodError: undefined method `blarg' for "foo":String         from (irb):6

class String   def blarg     "blarg"   end end

=> nil

"foo".blarg

=> "blarg"

Michael Graff wrote:

Something like this?

"foo".blarg

NoMethodError: undefined method `blarg' for "foo":String         from (irb):6         from :0

class String   def blarg     "blarg"   end end

=> nil

"foo".blarg

=> "blarg"

yes excactly, but where to place this code in the framework ?

Ahh, I understand your question.

I have a private plugin I made for this sort of thing. Just look up how to make a very simple plug-in, and you'll be set. If you do that, you can also maintain it and use it easily in other projects.

--Michael

Michael Graff wrote:

Ahh, I understand your question.

I have a private plugin I made for this sort of thing. Just look up how to make a very simple plug-in, and you'll be set. If you do that, you can also maintain it and use it easily in other projects.

--Michael

thanks works great, here is a nice tuto to create its own plugins : http://railsforum.com/viewtopic.php?id=682

I place the following in MyApp/lib/time_extensions.rb

class Time   def beginning_of_hour     self-(self.min).minutes-self.sec   end   def end_of_hour     self.beginning_of_hour + 1.hour - 1.second   end   def beginning_of_minute     self-self.sec   end   def end_of_minute     self.beginning_of_minute + 1.minute - 1.second   end   def beginning_of(secs=5.minutes)     return self if secs >= 1.day/2     secs_today = self - self.beginning_of_day     periods_today = (secs_today/secs).floor     self.beginning_of_day + periods_today * secs   end   def end_of(secs=5.minutes)     return self if secs >= 1.day/2     beginning_of(secs) + secs - 1.second   end end

I'd place it in an initializer.

Tiago Macedo

nico Itkin wrote: