Module: Client

Defined in:
lib/tcp_server/client.rb,
lib/tcp_server/client.rb,
lib/tcp_server/client.rb,
lib/tcp_server/client.rb,
lib/tcp_server/client.rb,
lib/tcp_server/client.rb,
lib/tcp_server/client.rb,
lib/tcp_server/client.rb,
lib/tcp_server/client.rb,
lib/tcp_server/client.rb

Overview

The Client module

Defined Under Namespace

Modules: InitializationMethods, InstanceMethods, Listenable Classes: ArgumentsParser, Channelizer, Console, ModularHandler, Monitor

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.client_configObject



41
42
43
44
45
46
47
48
49
50
51
# File 'lib/tcp_server/client.rb', line 41

def client_config
  @client_config ||= {
    host: '0.0.0.0',
    port: 8080,
    ssl: false,
    log_level: Logger::INFO,
    quit_commands: %i[bye cease desist exit leave quit stop terminate],
    max_frame_length: 8192,
    delimiter: Delimiters.lineDelimiter
  }.freeze
end

Instance Method Details

#main(args = parse_arguments) ⇒ Object

rubocop: disable Metrics/AbcSize rubocop: disable Metrics/MethodLength



587
588
589
590
591
592
593
594
595
596
597
598
599
600
# File 'lib/tcp_server/client.rb', line 587

def main(args = parse_arguments)
  Logging.log_level = args[:log_level]
  ::TCP::Client.new(args, ::Client::Console.new, ::Client::Monitor.new)
rescue Interrupt => e
  warn format("\r%<class>s", class: e.class)
  exit
rescue RuntimeError => e
  ::Client.log.fatal e.message
  exit 1
rescue StandardError => e
  ::Client.log.fatal "Unexpected error: #{e.class}: #{e.message}"
  e.backtrace.each { |t| log.debug t } if Logging.log_level == Logger::DEBUG
  exit 1
end

#parse_arguments(arguments_parser = ArgumentsParser.new) ⇒ Object

class ArgumentsParser



540
541
542
543
544
545
546
547
548
549
550
551
# File 'lib/tcp_server/client.rb', line 540

def parse_arguments(arguments_parser = ArgumentsParser.new)
  arguments_parser.parser.parse!(ARGV)
  arguments_parser.parse_positional_arguments!
  arguments_parser.options
rescue OptionParser::InvalidArgument, OptionParser::InvalidOption,
       OptionParser::MissingArgument, OptionParser::NeedlessArgument => e
  puts e.message
  puts parser
  exit
rescue OptionParser::AmbiguousOption => e
  abort e.message
end