class ShellCommand

Constants

BASE_COMMAND
DEFAULTS
MANDATORY_KEYS

Public Class Methods

build!(options) click to toggle source
# File lib/shell_command.rb, line 12
def self.build!(options)
  new(options).build
end
new(options) click to toggle source
# File lib/shell_command.rb, line 16
def initialize(options)
  @options = options.merge(DEFAULTS)
  @base_query = BASE_COMMAND % @options
end

Public Instance Methods

build() click to toggle source
# File lib/shell_command.rb, line 21
def build
  @options.each_pair do |key, value|
    next if MANDATORY_KEYS.include?(key)

    value = ENV[key.to_s] || value

    part = case key
           when :password
             "--password #{value} "
           when :pause_file
             "--pause-file=pause.txt "
           when :progress
             "--progress percentage,1 "
           when :max_load
             "--max-load Threads_running=#{value} "
           when :critical_load
             "--critical-load Threads_running=#{value} "
           when :innodb_lock_wait_timeout
             "--set-vars innodb_lock_wait_timeout=#{value} "
           else
             raise ArgumentError, "unknown option #{key}"
           end

    @base_query.insert(-1, part)
  end

  @base_query
end