Sha256: 5930d80f17901d47e576d4966bc44cc010e22cbf81fc781fb4a816c430749204

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

require 'ardb'

ENV['ARDB_CONFIG_FILE'] ||= 'config/db'

module Ardb; end
class Ardb::Runner
  UnknownCmdError = Class.new(ArgumentError)
  CmdError = Class.new(RuntimeError)
  CmdFail = Class.new(RuntimeError)

  attr_reader :cmd_name, :cmd_args, :opts

  def initialize(args, opts)
    @opts = opts
    @cmd_name = args.shift || ""
    @cmd_args = args
  end

  def run
    setup_run
    case @cmd_name
    when 'migrate'
      require 'ardb/runner/migrate_command'
      MigrateCommand.new.run
    when 'generate'
      require 'ardb/runner/generate_command'
      GenerateCommand.new(@cmd_args).run
    when 'create'
      require 'ardb/runner/create_command'
      CreateCommand.new.run
    when 'drop'
      require 'ardb/runner/drop_command'
      DropCommand.new.run
    when 'connect'
      require 'ardb/runner/connect_command'
      ConnectCommand.new.run
    when 'null'
      NullCommand.new.run
    else
      raise UnknownCmdError, "unknown command `#{@cmd_name}`"
    end
  end

  private

  def setup_run
    require ENV['ARDB_CONFIG_FILE']
    Ardb.init(false) # don't establish a connection
  end

  class NullCommand
    def run
      # if this was a real command it would do something here
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ardb-0.5.0 lib/ardb/runner.rb