Sha256: 2927542c8fee9b426e599b0eaf67325fa4091de0a87e212ed3b9ebc0c6dcb6da

Contents?: true

Size: 985 Bytes

Versions: 1

Compression:

Stored size: 985 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"]
    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.4 lib/open_geo_db/database.rb