Sha256: 5c02f34c93d701737c58b988575af942826289531345e2e1d66e57080b48cbad

Contents?: true

Size: 907 Bytes

Versions: 3

Compression:

Stored size: 907 Bytes

Contents

require 'dbi'

module Sqldump

  class Connector

    def initialize(options)
      @options = options
    end

    def connect
      begin
        dbh = DBI.connect(get_url, get_user, get_password)
        yield dbh

      ensure
        dbh.disconnect if dbh
      end

    end

    def get_url
      driver = get_driver
      url = "DBI:#{driver}:#{@options.database}"
      if use_host
        url += ":#{@options.host}"
      end
      url
    end

    def get_driver
      case @options.database_type
        when :sqlite3
          "SQLite3"
        when :postgresql
          "Pg"
        when :mysql
          "Mysql"
        else
          raise "Unknown database type " + @options.database_type
      end
    end

    def use_host
      @options.database_type != :sqlite3
    end

    def get_user
      @options.username
    end

    def get_password
      @options.password
    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
sqldump-0.0.4 lib/sqldump/connector.rb
sqldump-0.0.3 lib/sqldump/connector.rb
sqldump-0.0.2 lib/sqldump/connector.rb