Class: MysqlAlterMonitoring::CLI

Inherits:
Object
  • Object
show all
Defined in:
lib/mysql_alter_monitoring/cli.rb

Overview

MysqlAlterMonitoring::CLI

Instance Method Summary collapse

Constructor Details

#initialize(args, io: $stdout.tap { _1.sync = true }) ⇒ void

Parameters:

  • args (Array<String>)
  • io (::IO) (defaults to: $stdout.tap { _1.sync = true })


11
12
13
14
15
# File 'lib/mysql_alter_monitoring/cli.rb', line 11

def initialize(args, io: $stdout.tap { _1.sync = true })
  @args = args
  @io = io
  @options = {}
end

Instance Method Details

#helpString

Returns:

  • (String)


46
47
48
# File 'lib/mysql_alter_monitoring/cli.rb', line 46

def help
  parser.help
end

#runvoid

This method returns an undefined value.



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/mysql_alter_monitoring/cli.rb', line 19

def run # rubocop:disable Metrics/MethodLength, Metrics/AbcSize, Metrics/CyclomaticComplexity
  parse!

  return if help? || version?

  client = Client.new(build_config)

  case options[:command]
  when 'enable'
    PerformanceSchemaSetting.new(client, io).enable!
  when 'disable'
    PerformanceSchemaSetting.new(client, io).disable!
  when 'run'
    Monitor.new(client, io).run_until_empty_event
  when 'run-forever'
    Monitor.new(client, io).run_forever
  else
    raise ArgumentError, "Invalid command: #{options[:command]}"
  end
rescue OptionParser::InvalidOption, ArgumentError => e
  io.puts e.message
  io.puts help
rescue Interrupt
  io.puts 'Bye!'
end