class Feed2Email::Database

Public Class Methods

new(connect_options) click to toggle source
# File lib/feed2email/database.rb, line 5
def initialize(connect_options)
  setup_connection(connect_options)
  setup_schema
end

Private Instance Methods

connection() click to toggle source
# File lib/feed2email/database.rb, line 12
def connection; @connection end
setup_connection(options) click to toggle source
# File lib/feed2email/database.rb, line 14
def setup_connection(options)
  @connection = Sequel::Model.db = Sequel.connect(options)
end
setup_schema() click to toggle source
# File lib/feed2email/database.rb, line 18
def setup_schema
  connection.create_table? :feeds do
    primary_key :id
    String :uri, null: false, unique: true
    TrueClass :enabled, null: false, default: true
    String :etag
    String :last_modified
    Time :last_processed_at
    Time :created_at
    Time :updated_at
  end

  connection.create_table? :entries do
    primary_key :id
    foreign_key :feed_id, :feeds, null: false, index: true,
                                  on_delete: :cascade
    String :uri, null: false, unique: true
    Time :created_at
    Time :updated_at
  end
end