class Eventify::Database

Constants

PATH

Public Class Methods

events() click to toggle source
# File lib/eventify/database.rb, line 21
def events
  translated_events = []
  sqlite.execute("select * from event") do |event|
    translated_events << const_get(event["provider"]).new(
      id: event["id"],
      title: event["title"],
      link: event["link"],
      date: Time.parse(event["date"])
    )
  end

  translated_events
end
exists?(event) click to toggle source
# File lib/eventify/database.rb, line 7
def exists?(event)
  results = sqlite.execute "select 1 from event where id=? and provider=? and link=?", event.id, event.provider, event.link
  !results.empty?
end
save(event) click to toggle source
# File lib/eventify/database.rb, line 12
def save(event)
  sqlite.execute "insert into event values(?, ?, ?, ?, ?)", 
    event.id,
    event.provider,
    event.title,
    event.link,
    event.date.to_s
end

Private Class Methods

sqlite() click to toggle source
# File lib/eventify/database.rb, line 37
def sqlite
  @sqlite ||= begin
                FileUtils.mkdir_p File.dirname(PATH)
                database = SQLite3::Database.new PATH
                database.results_as_hash = true

                database.execute "create table if not exists event(
                  id text,
                  provider text,
                  title text,
                  link text,
                  date text,
                  primary key (id, provider, link)
                )"

                database
              end
end