[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

wrapping class method

Ball, Donald A Jr (Library)

1/23/2007 7:14:00 PM

Hey guys, I'm having trouble figuring out how to wrap a class method. I
want to add a logger.debug to ActiveRecord::Base.establish_connection,
just trying to figure out how the rails database connection lifecycle is
supposed to work. I tried this naive approach:

module ActiveRecord

class Base

alias self.old_establish_connection self.establish_connection

def self.establish_connection(arg)
logger.debug("Establishing connection")
self.old_establish_connection(arg)
end

end

end

of course, ruby doesn't like this, the self.old_establish_connection bit
throws a SyntaxError. How ought I go about doing this?

- donald

1 Answer

Erik Veenstra

1/23/2007 8:10:00 PM

0

> Hey guys, I'm having trouble figuring out how to wrap a class
> method.

Wrapping methods? That good old story? Have a look at [1]... ;]

gegroet,
Erik V. - http://www.erikve...

[1] http://www.erikve...monitorfunctions/index.html

----------------------------------------------------------------

$ cat init.rb
require "ev/metameta" # This is where I store my
meta-meta-programming stuff.

require "rubygems"
require "active_record"

module ActiveRecord
class Base
metaclass.pre_condition(:establish_connection) do |obj,
method_name, args, block|
puts "Establishing connection"
end
end
end

load "script/server"

----------------------------------------------------------------