Module: AndOne::Console

Defined in:
lib/and_one/console.rb

Overview

Auto-scans for N+1 queries during rails console sessions. Each console command is wrapped in an N+1 scan, and warnings are printed inline after the result.

Activated automatically by the Railtie in development, or manually:

AndOne::Console.activate!

To deactivate:

AndOne::Console.deactivate!

Defined Under Namespace

Modules: IrbContextPatch

Class Method Summary collapse

Class Method Details

.activate!Object



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/and_one/console.rb', line 17

def activate!
  return if active?

  @active = true
  @previous_raise = AndOne.raise_on_detect
  # Never raise in console — always warn inline
  AndOne.raise_on_detect = false

  start_scan
  install_hook
end

.active?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/and_one/console.rb', line 38

def active?
  @active == true
end

.deactivate!Object



29
30
31
32
33
34
35
36
# File 'lib/and_one/console.rb', line 29

def deactivate!
  return unless active?

  finish_scan
  remove_hook
  AndOne.raise_on_detect = @previous_raise
  @active = false
end