class Minitest::Perf::Persistence

Attributes

database_url[R]

Public Class Methods

new(database_url = Perf.database_url) click to toggle source
# File lib/minitest/perf/persistence.rb, line 8
def initialize(database_url = Perf.database_url)
  @database_url = database_url
end

Public Instance Methods

read_tests() click to toggle source
# File lib/minitest/perf/persistence.rb, line 19
def read_tests
  db.execute("SELECT * FROM TESTS").map do |run, suite, name, total|
    Test.new(run, suite, name, total)
  end
end
sql(query) click to toggle source
# File lib/minitest/perf/persistence.rb, line 25
def sql(query)
  db.execute query
end
write(test) click to toggle source
# File lib/minitest/perf/persistence.rb, line 12
      def write(test)
        db.execute <<-SQL, [test.run.to_s, test.suite, test.name, test.total]
          INSERT INTO tests (run, suite, name, total)
          VALUES (?, ?, ?, ?)
        SQL
      end

Private Instance Methods

db() click to toggle source
# File lib/minitest/perf/persistence.rb, line 31
      def db
        @db ||= begin
                  db = SQLite3::Database.new sqlite3_db_name
                  db.execute <<-SQL
                    create table if not exists tests (
                      run varchar(255),
                      suite varchar(255),
                      name varchar(255),
                      total float
                    );
                  SQL
                  db
                end
      end
sqlite3_db_name() click to toggle source

Use a simple regexp, because for now, only sqlite3 is supported.

# File lib/minitest/perf/persistence.rb, line 48
def sqlite3_db_name
  @database_url.scan(/sqlite3:\/\/localhost\/(.+)/)[0][0]
end