Question

I'm using rack mini profiler in rails just fine, but during some coding sessions especially where I'm working on a lot of different client side code, it gets in the way. (mainly in my client side debugging tools network graphs, etc.)

I'm trying to turn it off with a before filter, that also serves to see if the user is authorized to see the profile anyway, but "deauthorize" doesn't seem to do anything for me. Here's my code called as a before filter:

def miniprofiler  
 off = true
 if off || !current_user
  Rack::MiniProfiler.deauthorize_request
  return
 elsif current_user.role_symbols.include?(:view_page_profiles)    
  Rack::MiniProfiler.authorize_request
  return
 end
 Rack::MiniProfiler.deauthorize_request
end

I also know there is a setting "Rack::MiniProfiler.config.authorization_mode" but I can't find docs on what the possible settings are, and not seeing it used in the code? Right now its telling me :allow_all, but :allow_none doesn't do anything either.

Even if I can just temporarily set a value in the dev environment file and restart the server, that would serve my purposes.

Was it helpful?

Solution

Get latest and type:

http://mysite.com?pp=disable

When you are done type

http://mysite.com?pp=enable

See ?pp=help for all the options:

Append the following to your query string:

  pp=help : display this screen
  pp=env : display the rack environment
  pp=skip : skip mini profiler for this request
  pp=no-backtrace : don't collect stack traces from all the SQL executed (sticky, use pp=normal-backtrace to enable)
  pp=normal-backtrace (*) : collect stack traces from all the SQL executed and filter normally
  pp=full-backtrace : enable full backtraces for SQL executed (use pp=normal-backtrace to disable) 
  pp=sample : sample stack traces and return a report isolating heavy usage (experimental works best with the stacktrace gem)
  pp=disable : disable profiling for this session 
  pp=enable : enable profiling for this session (if previously disabled)
  pp=profile-gc: perform gc profiling on this request, analyzes ObjectSpace generated by request (ruby 1.9.3 only)
  pp=profile-gc-time: perform built-in gc profiling on this request (ruby 1.9.3 only)

OTHER TIPS

You can also use Alt+p to toggle.

If you want the profiler to be disabled initially, and then activate on demand... add a pre-authorize callback in an initializer file like:

Rack::MiniProfiler.config.pre_authorize_cb = lambda {|env| ENV['RACK_MINI_PROFILER'] == 'on'}

then in your application controller, add a before_filter that looks for the pp param

before_filter :activate_profiler
def activate_profiler
  ENV['RACK_MINI_PROFILER'] = 'on' if params['pp']
  ENV['RACK_MINI_PROFILER'] = 'off' if params['pp'] == 'disabled'
end

your environment will not have RACK_MINI_PROFILER set initially, but if you want to turn it on, you can tack ?pp=enabled onto your url. Then you can disable again later (the pp=disabled will only turn it off for the current session, but setting the ENV variable to off will kill it entirely until you force it back on).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top