Class: Personal::DbPersistence
- Inherits:
-
Object
- Object
- Personal::DbPersistence
- Defined in:
- lib/personal.rb
Instance Attribute Summary collapse
-
#db ⇒ Object
readonly
Returns the value of attribute db.
Instance Method Summary collapse
- #close_db ⇒ Object
- #create_entry(data) ⇒ Object
- #delete_entry(id) ⇒ Object
- #entries_by_year_and_month(year, month) ⇒ Object
- #entries_by_year_month_day(year, month, day) ⇒ Object
- #find(some_text) ⇒ Object
-
#initialize(db_handle) ⇒ DbPersistence
constructor
A new instance of DbPersistence.
- #latest_entries(limit = 10) ⇒ Object
- #latest_entry ⇒ Object
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
#db ⇒ Object (readonly)
Returns the value of attribute db.
37 38 39 |
# File 'lib/personal.rb', line 37 def db @db end |
Instance Method Details
#close_db ⇒ Object
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_entry ⇒ Object
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 |