Module: Remnant::Database::ClassMethods

Included in:
Remnant::Database
Defined in:
lib/remnant/database.rb

Instance Method Summary collapse

Instance Method Details

#disable!Object



4
5
6
# File 'lib/remnant/database.rb', line 4

def disable!
  @enabled = false
end

#enable!Object



8
9
10
# File 'lib/remnant/database.rb', line 8

def enable!
  @enabled = true
end

#enabled?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/remnant/database.rb', line 12

def enabled?
  @enabled
end

#queriesObject



40
41
42
# File 'lib/remnant/database.rb', line 40

def queries
  Thread.current['remnant.database.queries'] ||= []
end

#record(sql, backtrace = [], &block) ⇒ Object



24
25
26
27
28
29
30
31
32
# File 'lib/remnant/database.rb', line 24

def record(sql, backtrace = [], &block)
  return block.call unless Remnant::Database.enabled?

  start_time = Time.now
  result = block.call
  queries << Remnant::Database::Query.new(sql, Time.now - start_time, backtrace)

  return result
end

#resetObject



34
35
36
37
38
# File 'lib/remnant/database.rb', line 34

def reset
  @suppress = true
  @total_time = nil
  Thread.current['remnant.database.queries'] = []
end

#suppress?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/remnant/database.rb', line 20

def suppress?
  @suppress || true
end

#total_timeObject



44
45
46
# File 'lib/remnant/database.rb', line 44

def total_time
  @total_time ||= queries.map(&:time).sum * 1000
end

#unsuppress!Object



16
17
18
# File 'lib/remnant/database.rb', line 16

def unsuppress!
  @suppress = false
end