Class: Personal::DbPersistence

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(db_handle) ⇒ DbPersistence

Returns a new instance of DbPersistence.



39
40
41
# File 'lib/personal.rb', line 39

def initialize(db_handle)
  @db = db_handle
end

Instance Attribute Details

#dbObject (readonly)

Returns the value of attribute db.



37
38
39
# File 'lib/personal.rb', line 37

def db
  @db
end

Instance Method Details

#close_dbObject



43
44
45
# File 'lib/personal.rb', line 43

def close_db
  @db.close unless @db.closed?
end

#create_entry(data) ⇒ Object



47
48
49
# File 'lib/personal.rb', line 47

def create_entry(data)
  @db.execute("insert into personal(created_at, data) values(CURRENT_TIMESTAMP, ?)", data)
end

#delete_entry(id) ⇒ Object



55
56
57
# File 'lib/personal.rb', line 55

def delete_entry(id)
  @db.execute("delete from personal where id = ?", id)
end

#entries_by_year_and_month(year, month) ⇒ Object



67
68
69
# File 'lib/personal.rb', line 67

def entries_by_year_and_month(year, month)
  @db.execute("select * from (select * from personal where cast(strftime('%Y', created_at) as integer) = ? and cast(strftime('%m', created_at) as integer) = ? order by created_at DESC) order by created_at ASC", year, month)
end

#entries_by_year_month_day(year, month, day) ⇒ Object



71
72
73
# File 'lib/personal.rb', line 71

def entries_by_year_month_day(year, month, day)
  @db.execute("select * from (select * from personal where cast(strftime('%Y', created_at) as integer) = ? and cast(strftime('%m', created_at) as integer) = ? and cast(strftime('%d', created_at) as integer) = ? order by created_at DESC) order by created_at ASC", year, month, day)
end

#find(some_text) ⇒ Object



63
64
65
# File 'lib/personal.rb', line 63

def find(some_text)
   @db.execute("select * from (select * from personal where data like ? order by created_at desc) order by created_at ASC", "%" + some_text + "%")
end

#latest_entries(limit = 10) ⇒ Object



59
60
61
# File 'lib/personal.rb', line 59

def latest_entries(limit = 10)
  @db.execute("select * from (select * from personal order by created_at desc limit ?) order by created_at ASC", limit)
end

#latest_entryObject



51
52
53
# File 'lib/personal.rb', line 51

def latest_entry
  @db.execute('select * from personal order by created_at DESC limit 1')
end