Forum: Italian Ruby user group Come avere ActiveSupport::Notification a inizio/fine ?

E555a767a33427bfee0bb0878566293c?d=identicon&s=25 gabriele renzi (Guest)
on 2012-05-03 23:58
(Received via mailing list)
Eil,

stavo smanettando con un simpatico plugin per rails per tracciare come
viene speso il tempo durante una richiesta, e mostrarlo direttamente
in browser.

La cosa funzionicchia ma ho un problema: vorrei tracciare quello che
succede a diversi livelli di profondit es:

controller
render tutto
  render contenuto vista
   render partial
   render altro partial
  render layout

etc..

In teoria ActiveSupport ha le notification per questo scopo, il
problema  gli eventi vengono mandati solo alla fine, per quel che
capisco io.

Esempio, voglio tracciare X durante il rendering della pagina, vorrei
fare, con un api ipotetica

      count = nil
      ActiveSupport::Notifications.subscribe /render/, :start do
|name,  id, payload|
         count = 0
         start_tracking do |an_x| count+=1 end
      end

      ActiveSupport::Notifications.subscribe /render/, :end do |name,
id, payload|
         puts "X invoked #{count} times"
         stop_tracking
      end


il problema  che l'API di ActiveSupport::Notification mi manda gli
event quando sono gi finiti (a intervallo) e quindi non posso
correlarli direttamente con quello che traccerei in #track_xs (nota:
alcuni eventi invece sono apparentemte fatti come dico io, tipo quelli
di start/end action processing)

A parte un monkey patching brutale di #subscribe qualcuno ha idee
alternative?
C' un modo ovvio di fare questa cosa che io non ho capito?
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.