Sha256: 3187bbdf3f9d2cfaa50a428f4bdda78748adeb54ed027c89d2e7bcb0c540eb22

Contents?: true

Size: 881 Bytes

Versions: 1

Compression:

Stored size: 881 Bytes

Contents

shared_context 'database setup' do
  subject(:rom) { setup.finalize }

  let(:uri) { 'postgres://localhost/rom' }
  let(:conn) { Sequel.connect(uri) }
  let(:setup) { ROM.setup(:sql, uri) }

  def drop_tables
    [:users, :tasks, :tags, :task_tags].each { |name| conn.drop_table?(name) }
  end

  before do
    conn.loggers << LOGGER

    drop_tables

    conn.create_table :users do
      primary_key :id
      String :name, null: false
      index :name, unique: true
    end

    conn.create_table :tasks do
      primary_key :id
      Integer :user_id
      String :title
    end

    conn.create_table :tags do
      primary_key :id
      String :name
    end

    conn.create_table :task_tags do
      primary_key :tag_id, :task_id
      Integer :tag_id
      Integer :task_id
    end
  end

  after do
    rom.repositories[:default].disconnect
    conn.disconnect
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rom-sql-0.4.0.beta2 spec/shared/database_setup.rb