Class: TTrack::DataStore
- Inherits:
-
Object
- Object
- TTrack::DataStore
- Defined in:
- lib/ttrack/datastore.rb
Instance Method Summary collapse
- #cleanup ⇒ Object
- #getcurrent ⇒ Object
- #getissuesandtimesbyname(issuename) ⇒ Object
- #getissuesbyname(issuename) ⇒ Object
- #getnamebyissueid(issueid) ⇒ Object
- #getstatus ⇒ Object
- #gettime(issueid = false) ⇒ Object
- #gettimesbyissuename(issuename) ⇒ Object
- #gettimesheet ⇒ Object
-
#initialize(dbname, timezone = "+02:00", version = 'v0.3.3', verbosity = 0) ⇒ DataStore
constructor
A new instance of DataStore.
- #isissue?(id) ⇒ Boolean
- #settstart(id, tstart) ⇒ Object
- #settstop(id, tstop) ⇒ Object
- #startnew(issuename, notes) ⇒ Object
- #stoprunning ⇒ Object
Constructor Details
#initialize(dbname, timezone = "+02:00", version = 'v0.3.3', verbosity = 0) ⇒ DataStore
Returns a new instance of DataStore.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/ttrack/datastore.rb', line 6 def initialize dbname, timezone="+02:00", version='v0.3.3', verbosity=0 @dbname = dbname @timezone = timezone @version = version @verbosity = verbosity if FileTest.zero?(@dbname) or not FileTest.file?(@dbname) @db = SQLite3::Database.new( @dbname ) createschema init(timezone, version, verbosity) else @db = SQLite3::Database.open( @dbname ) end end |
Instance Method Details
#cleanup ⇒ Object
140 141 142 143 144 |
# File 'lib/ttrack/datastore.rb', line 140 def cleanup droptables createschema init(@timezone, @version, @verbosity) end |
#getcurrent ⇒ Object
64 65 66 67 |
# File 'lib/ttrack/datastore.rb', line 64 def getcurrent current = @db.execute "SELECT current FROM system" current[0][0] == "" ? false : current[0][0] end |
#getissuesandtimesbyname(issuename) ⇒ Object
115 116 117 |
# File 'lib/ttrack/datastore.rb', line 115 def getissuesandtimesbyname issuename @db.execute "SELECT tstart,tstop FROM timesheet WHERE name='%s'" % issuename end |
#getissuesbyname(issuename) ⇒ Object
119 120 121 |
# File 'lib/ttrack/datastore.rb', line 119 def getissuesbyname issuename @db.execute "SELECT id,tstart,tstop,synced, notes FROM timesheet WHERE name='%s'" % issuename end |
#getnamebyissueid(issueid) ⇒ Object
123 124 125 |
# File 'lib/ttrack/datastore.rb', line 123 def getnamebyissueid issueid result = @db.execute "SELECT name FROM timesheet WHERE id=%d" % issueid end |
#getstatus ⇒ Object
69 70 71 72 73 74 75 76 77 |
# File 'lib/ttrack/datastore.rb', line 69 def getstatus current = getcurrent if current status = @db.execute "SELECT id,name FROM timesheet WHERE id=%d" % current status[0] else nil end end |
#gettime(issueid = false) ⇒ Object
97 98 99 100 101 102 103 104 105 |
# File 'lib/ttrack/datastore.rb', line 97 def gettime issueid=false issueid = issueid ? issueid : getcurrent if issueid time = @db.execute "SELECT tstart,tstop FROM timesheet WHERE id=%d" % issueid time[0] else false end end |
#gettimesbyissuename(issuename) ⇒ Object
111 112 113 |
# File 'lib/ttrack/datastore.rb', line 111 def gettimesbyissuename issuename @db.execute "SELECT tstart,tstop FROM timesheet WHERE name='%s'" % issuename end |
#gettimesheet ⇒ Object
107 108 109 |
# File 'lib/ttrack/datastore.rb', line 107 def gettimesheet @db.execute "SELECT id,name,tstart,tstop,synced,notes FROM timesheet" end |
#isissue?(id) ⇒ Boolean
135 136 137 138 |
# File 'lib/ttrack/datastore.rb', line 135 def isissue? id r = @db.execute "SELECT id from timesheet WHERE id=%d" % id r[0].nil? ? false : true end |
#settstart(id, tstart) ⇒ Object
127 128 129 |
# File 'lib/ttrack/datastore.rb', line 127 def settstart id, tstart @db.execute "UPDATE timesheet SET tstart=datetime('%s') WHERE id=%d" % [tstart, id] end |
#settstop(id, tstop) ⇒ Object
131 132 133 |
# File 'lib/ttrack/datastore.rb', line 131 def settstop id, tstop @db.execute "UPDATE timesheet SET tstop=datetime('%s') WHERE id=%d" % [tstop, id] end |
#startnew(issuename, notes) ⇒ Object
79 80 81 82 83 84 |
# File 'lib/ttrack/datastore.rb', line 79 def startnew issuename, notes @db.execute "INSERT INTO timesheet ( name, notes ) VALUES ( '%s', '%s' )" % [issuename, notes] latest = @db.execute "SELECT id FROM timesheet ORDER BY id DESC LIMIT 1" setcurrent latest[0][0] end |
#stoprunning ⇒ Object
86 87 88 89 90 91 92 93 94 95 |
# File 'lib/ttrack/datastore.rb', line 86 def stoprunning current = getcurrent if current @db.execute "UPDATE timesheet set tstop = datetime('now') WHERE id = %d" % current @db.execute "UPDATE system SET current = '', latest = '%d'" % current current.to_i else false end end |