class SqlMigrate::CLI

Attributes

config[R]

Public Class Methods

new() click to toggle source
# File lib/sql_migrate/cli.rb, line 15
def initialize
  @config = Config.new
end
run(argv = ARGV) click to toggle source
# File lib/sql_migrate/cli.rb, line 9
def self.run(argv = ARGV)
  cli = new
  cli.parse(argv)
  cli.execute
end

Public Instance Methods

execute() click to toggle source
# File lib/sql_migrate/cli.rb, line 44
def execute
  migrator = Migrator.new(config)
  migrator.migrate
end
parse(argv) click to toggle source
# File lib/sql_migrate/cli.rb, line 19
def parse(argv)
  args = argv.dup
  options = {}
  OptionParser.new do |opt|
    opt.version = VERSION
    opt.banner = "sql_migrate [options] MIGRATIONS_PATH"
    opt.on("-h HOST")         { |v| options[:host]     = v }
    opt.on("-p PORT")         { |v| options[:port]     = v }
    opt.on("-d DATABASE")     { |v| options[:database] = v }
    opt.on("-u USER")         { |v| options[:user]     = v }
    opt.on("-p PASSWORD")     { |v| options[:password] = v }
    opt.on("-v", "--verbose") { |v| options[:verbose]  = v }
    opt.on("-n", "--dry-run") { |v| options[:dryrun]   = v }
    opt.on("--applied")       { |v| options[:applied]  = v }
    opt.on("-f CONFIG")       { |v| options[:config]   = v }
    opt.parse!(args)
  end

  load_from_config(options.delete(:config)) if options.has_key?(:config)
  config.merge(options)
  config.migration_paths = args unless args.empty?

  args
end

Private Instance Methods

load_from_config(path) click to toggle source
# File lib/sql_migrate/cli.rb, line 51
def load_from_config(path)
  path = File.expand_path(path)
  yaml = YAML.load_file(path)
  config.merge(yaml)
end