Sha256: 214cc40d53791fe0e8419180318b2fcd0f9a34c7101864aae0940b895104f3fd

Contents?: true

Size: 1013 Bytes

Versions: 1

Compression:

Stored size: 1013 Bytes

Contents

module OpenGeoDb
  class Database
    class UnknownActionError < ArgumentError
    end

    def initialize(config)
      @database = config["database"]
      @username = config["username"]
      @password = "-p#{config["password"]}" if config["password"] and config["password"].any?
    end

    def execute(action)
      case action
      when :create then create
      when :destroy then destroy
      else
        raise UnknownActionError, action
      end
    end

    private

    def create
      sh("mysqladmin -u#{@username} #{@password} create #{@database}")
      %w(opengeodb-begin DE DEhier AT AThier CH CHhier opengeodb-end).each do |basename|
        file = File.join(File.dirname(__FILE__), %w(.. .. vendor sql), "#{basename}.sql")
        sh("mysql -u#{@username} #{@password} #{@database} < #{file}")
      end
    end

    def destroy
      sh("mysqladmin -u#{@username} #{@password} drop -f #{@database}")
    end

    def sh(command)
      puts(command)
      %x{#{command}}
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
open_geo_db-0.0.3 lib/open_geo_db/database.rb