Sha256: 7a667aaa485c86113b7ecdda5c159a5d411fa2cafaee35f061802065681ecb4b

Contents?: true

Size: 693 Bytes

Versions: 1

Compression:

Stored size: 693 Bytes

Contents

require "pg"
require "set"
require "shoden/model"

module Shoden
  Error                = Class.new(StandardError)
  MissingID            = Class.new(Error)
  NotFound             = Class.new(Error)
  UniqueIndexViolation = Class.new(Error)

  def self.url=(url)
    @_url = url
  end

  def self.url
    @_url ||= ENV["DATABASE_URL"]
  end

  def self.models
    @_models ||= Set.new
  end

  def self.connection
    @_connection ||= begin
      uri = URI.parse(url)
      PG.connect(uri.hostname, uri.port, nil, nil, uri.path[1..-1], uri.user, uri.password)
    end
  end

  def self.setup
    models.each(&:setup)
  end

  def self.destroy_tables
    models.each(&:destroy_table)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shoden-1.0 lib/shoden.rb