class Arguments

Attributes

infer_types[RW]
mysql_db[RW]
mysql_host[RW]
mysql_port[RW]
password[RW]
sqlite_db[RW]
username[RW]

Public Class Methods

new(args) click to toggle source
# File lib/sqlite2mysql/services/arguments.rb, line 5
def initialize(args)
  help(args) if args.size == 0

  set_defaults
  unmodified_args = args.dup
  unmodified_args.each do |arg|
    if arg.start_with?('--')
      send(arg[2..-1], args)
      args.delete(arg)
    end
  end

  @sqlite_db = args.first
  @mysql_db = args[1] || @sqlite_db.gsub(/[^0-9a-z]/i, '')
end

Public Instance Methods

help(_) click to toggle source
# File lib/sqlite2mysql/services/arguments.rb, line 41
  def help(_)
    puts <<-HELP
Usage:
  sqlite2mysql sqlite.db [mysql_name]

Options:
  --help    Show this message
  --infer   Infer types for columns
  --user    MySQL username (default: root)
  --host    MySQL host     (default: localhost)
  --pass    MySQL password
  --port    MySQL port
HELP
    exit 0
  end
host(args) click to toggle source
# File lib/sqlite2mysql/services/arguments.rb, line 37
def host(args)
  @mysql_host = get_value_for_flag('--host', args)
end
infer(_) click to toggle source
# File lib/sqlite2mysql/services/arguments.rb, line 21
def infer(_)
  @infer_types = true
end
pass(args) click to toggle source
# File lib/sqlite2mysql/services/arguments.rb, line 29
def pass(args)
  @password = get_value_for_flag('--pass', args)
end
port(args) click to toggle source
# File lib/sqlite2mysql/services/arguments.rb, line 33
def port(args)
  @mysql_port = get_value_for_flag('--port', args)
end
user(args) click to toggle source
# File lib/sqlite2mysql/services/arguments.rb, line 25
def user(args)
  @username = get_value_for_flag('--user', args)
end

Private Instance Methods

get_value_for_flag(flag, args) click to toggle source
# File lib/sqlite2mysql/services/arguments.rb, line 59
def get_value_for_flag(flag, args)
  index = args.index(flag)
  args.delete_at(index + 1)
end
set_defaults() click to toggle source
# File lib/sqlite2mysql/services/arguments.rb, line 64
def set_defaults
  @username = 'root'
  @password = nil
  @host = 'localhost'
  @port = nil
  @infer = false
end