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