Class: WhatToRun::Tracker

Inherits:
Object
  • Object
show all
Defined in:
lib/what_to_run/tracker.rb

Constant Summary collapse

DB_NAME =
'run_log'.freeze
DB =
SQLite3::Database.open \
".what_to_run/#{DB_NAME}#{ENV['TEST_ENV_NUMBER']}.db"

Class Method Summary collapse

Class Method Details

.finishObject



38
39
40
# File 'lib/what_to_run/tracker.rb', line 38

def finish
  DB.close
end

.readObject



42
43
44
45
46
47
48
49
50
51
# File 'lib/what_to_run/tracker.rb', line 42

def read
  query = 'select description, log from coverage'

  unless additional_databases.empty?
    attach_databases!
    query += union_query
  end

  DB.execute(query).map { |row| [row[0], Marshal.load(row[1])] }
end

.startObject



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

def start
  DB.execute 'drop table if exists coverage'

  DB.execute <<-SQL
    create table if not exists coverage (
      description varchar,
      log blob
    )
  SQL

  @before_suite = CoveragePeeker.peek_result
end

.track(description, before, after) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/what_to_run/tracker.rb', line 30

def track(description, before, after)
  coverage = Marshal.dump \
    Differ.coverage_delta(before, after, @before_suite)

  DB.execute 'insert into coverage VALUES(?, ?)',
    [description, SQLite3::Blob.new(coverage)]
end