class OpenRAReplay::Sanitize::CLI

Constants

WARN_COUNT
WARN_EXIST
WARN_INPUT

Attributes

chat[RW]
force[RW]
in_name[RW]
ip[RW]
message[RW]
out_name[RW]
password[RW]
ping[RW]
player_name[RW]
server_name[RW]
time[RW]

Public Class Methods

new(arguments) click to toggle source
# File lib/openrareplay/sanitize/cli.rb, line 36
def initialize(arguments)
  OptionParser.new do |parser|
    header parser
    option_ping parser
    option_message parser
    option_chat parser
    option_ip parser
    option_time parser
    option_password parser
    option_player_name parser
    option_server_name parser
    option_force parser
    footer parser
  end.parse! arguments
  handle_input arguments
end

Public Instance Methods

sanitize() click to toggle source
# File lib/openrareplay/sanitize/cli.rb, line 53
def sanitize
  OpenRAReplay::Sanitize::ReplaySanitizer.new(in_name, out_name,
                                              ping: ping,
                                              message: message,
                                              chat: chat,
                                              ip: ip,
                                              time: time,
                                              password: password,
                                              player_name: player_name,
                                              server_name: server_name).sanitize
end

Private Instance Methods

handle_input(arguments) click to toggle source
# File lib/openrareplay/sanitize/cli.rb, line 145
def handle_input(arguments)
  warn_and_exit WARN_COUNT unless arguments.length == 2
  warn_and_exit WARN_INPUT unless File.exist? arguments.first
  warn_and_exit WARN_EXIST unless force || !File.exist?(arguments.last)
  self.in_name = arguments.first
  self.out_name = arguments.last
end
header(parser) click to toggle source
# File lib/openrareplay/sanitize/cli.rb, line 67
def header(parser)
  parser.banner = "Usage: openra-sanitize [options] in_file out_file\n" \
                  'Reads an OpenRA replay file, trims/masks it, and outputs' \
                   ' the result as a new file' \

  parser.separator ''
  parser.separator 'Specific options:'
end
option_chat(parser) click to toggle source
# File lib/openrareplay/sanitize/cli.rb, line 103
def option_chat(parser)
  parser.on('-c', '--chat', TrueClass, 'Trim all chat messages') do |c|
    self.chat = c
  end
end
option_force(parser) click to toggle source
# File lib/openrareplay/sanitize/cli.rb, line 139
def option_force(parser)
  parser.on('-f', '--force', TrueClass, 'Force overwriting out_file') do |f|
    self.force = f
  end
end
option_ip(parser) click to toggle source
# File lib/openrareplay/sanitize/cli.rb, line 109
def option_ip(parser)
  parser.on('-i', '--ip', TrueClass, 'Trim all IP addresses') do |i|
    self.ip = i
  end
end
option_message(parser) click to toggle source
# File lib/openrareplay/sanitize/cli.rb, line 97
def option_message(parser)
  parser.on('-m', '--message', TrueClass, 'Trim all server messages') do |m|
    self.message = m
  end
end
option_password(parser) click to toggle source
# File lib/openrareplay/sanitize/cli.rb, line 121
def option_password(parser)
  parser.on('-P', '--password', TrueClass, 'Trims the server password') do |p|
    self.password = p
  end
end
option_ping(parser) click to toggle source
# File lib/openrareplay/sanitize/cli.rb, line 91
def option_ping(parser)
  parser.on('-p', '--ping', TrueClass, 'Trim all ping-related content') do |p|
    self.ping = p
  end
end
option_player_name(parser) click to toggle source
# File lib/openrareplay/sanitize/cli.rb, line 127
def option_player_name(parser)
  parser.on('-n', '--player-name', TrueClass, 'Masks all player names') do |n|
    self.player_name = n
  end
end
option_server_name(parser) click to toggle source
# File lib/openrareplay/sanitize/cli.rb, line 133
def option_server_name(parser)
  parser.on('-s', '--server-name', TrueClass, 'Trim the server name') do |s|
    self.server_name = s
  end
end
option_time(parser) click to toggle source
# File lib/openrareplay/sanitize/cli.rb, line 115
def option_time(parser)
  parser.on('-t', '--time', TrueClass, 'Mask all dates and times') do |i|
    self.ip = i
  end
end
warn_and_exit(text) click to toggle source
# File lib/openrareplay/sanitize/cli.rb, line 153
def warn_and_exit(text)
  warn text
  warn "Try 'openra-sanitize --help' for more information."
  Kernel.exit 1
end