Module: NPlusOneControl

Defined in:
lib/n_plus_one_control.rb,
lib/n_plus_one_control/rspec.rb,
lib/n_plus_one_control/version.rb,
lib/n_plus_one_control/executor.rb,
lib/n_plus_one_control/minitest.rb,
lib/n_plus_one_control/rspec/dsl.rb

Overview

RSpec and Minitest matchers to prevent N+1 queries problem.

Defined Under Namespace

Modules: Executor, MinitestHelper, RSpec

Constant Summary collapse

VERSION =
"0.2.1"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.default_scale_factorsObject

Returns the value of attribute default_scale_factors.



9
10
11
# File 'lib/n_plus_one_control.rb', line 9

def default_scale_factors
  @default_scale_factors
end

.eventObject

Returns the value of attribute event.



9
10
11
# File 'lib/n_plus_one_control.rb', line 9

def event
  @event
end

.ignoreObject

Returns the value of attribute ignore.



9
10
11
# File 'lib/n_plus_one_control.rb', line 9

def ignore
  @ignore
end

.verboseObject

Returns the value of attribute verbose.



9
10
11
# File 'lib/n_plus_one_control.rb', line 9

def verbose
  @verbose
end

Class Method Details

.failure_message(queries) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/n_plus_one_control.rb', line 11

def failure_message(queries)
  msg = ["Expected to make the same number of queries, but got:\n"]
  queries.each do |(scale, data)|
    msg << "  #{data.size} for N=#{scale}\n"
    msg << data.map { |sql| "    #{sql}\n" }.join.to_s if verbose
  end
  msg.join
end