Forum: Ruby aspectr and rails

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
D1b633d26d4f7102f800c828990bf764?d=identicon&s=25 Peter Bodik (Guest)
on 2006-03-17 21:05
(Received via mailing list)
Has anybody successfully used AspectR with Rails?

I would like to profile some parts of my Rails app such as accesses to
DB, helper methods, and rendering of views. I'd like to do this in the
live production version of the site and I'd like to turn this
monitoring on and off at run-time.

I know I could instrument all of these methods manually and collect the
data I want, but ideally I'd like to make no changes to the actual
application.

So I tried using AspectR for this and it works for some methods, but
most of the methods return this error:

#<NoMethodError: You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occured while evaluating nil.[]>

in this method (part of aspectr) when it tries to access
@__aop_advice_methods:

      def __aop_advice_list(joinpoint, method)
		method = method.to_s
		unless (method_hash = @__aop_advice_methods[joinpoint])
	  			method_hash = @__aop_advice_methods[joinpoint] = {}
		end
		unless (advice_list = method_hash[method])
	  		advice_list =  method_hash[method] = []
		end
		advice_list
      end

It seems like @__aop_advice_methods disappears or something.

Anybody has an idea how to fix this?

Or a different way how to do the monitoring I described above?

Thanks,
Peter
F690ec04b0501b74b033fc64ff4f682b?d=identicon&s=25 Dean Wampler (Guest)
on 2006-03-19 01:35
(Received via mailing list)
AspectR is pretty old now and doesn't appear to be actively
maintained. It may not be compatible with more recent versions of
Ruby.  You might look at RCR 321:
http://www.rcrchive.net/rcr/show/321%22, although if I recall
correctly, it is proposing language changes. Still, it might give you
ideas for doing your monitoring using existing Ruby techniques.

dean

On 3/17/06, Peter Bodik <bodikp.archive@gmail.com> wrote:
>
>       def __aop_advice_list(joinpoint, method)
> It seems like @__aop_advice_methods disappears or something.
>
> Anybody has an idea how to fix this?
>
> Or a different way how to do the monitoring I described above?
>
> Thanks,
> Peter
>
>
>


--
Dean Wampler
http://www.aspectprogramming.com
http://www.newaspects.com
http://www.contract4j.org
This topic is locked and can not be replied to.