Class: Chartspec::Db

Inherits:
Object
  • Object
show all
Defined in:
lib/chartspec/db.rb

Instance Method Summary collapse

Constructor Details

#initialize(db = nil) ⇒ Db

Returns a new instance of Db.



5
6
7
8
9
10
11
12
13
# File 'lib/chartspec/db.rb', line 5

def initialize db = nil
  @db_file = db || "tmp/chartspec.sqlite3"
  db_dirname = File.dirname(@db_file)
  unless File.directory?(db_dirname)
    FileUtils.mkdir_p(db_dirname)
  end
  @db = SQLite3::Database.new @db_file
  @db.execute( "CREATE TABLE IF NOT EXISTS specs(id INTEGER PRIMARY KEY, file TEXT, name TEXT, duration NUMERIC, measured_at DATETIME);" )
end

Instance Method Details

#add(file, name, duration, measured_at = Time.now.to_i) ⇒ Object



15
16
17
18
19
# File 'lib/chartspec/db.rb', line 15

def add(file, name, duration, measured_at = Time.now.to_i)
  @db.execute("INSERT INTO specs(file, name, duration, measured_at) VALUES (?, ?, ?, ?)", [
    file, name, duration, measured_at
  ]) 
end

#allObject



21
22
23
# File 'lib/chartspec/db.rb', line 21

def all
  @db.execute( "select file, name, duration, measured_at from specs where measured_at > ?", (Time.now - ((ENV['CHARTSPEC_HISTORY_HOURS'] || 2)*3600)).to_i)
end

#file_nameObject



25
26
27
# File 'lib/chartspec/db.rb', line 25

def file_name
  @db_file
end