Class: WebSocket::ArgumentsParser
- Defined in:
- lib/websocket_client.rb,
lib/websocket/arguments_parser.rb
Overview
rubocop: disable Metrics/ClassLength The ArgumentsParser class
Instance Attribute Summary collapse
-
#options ⇒ Object
readonly
Returns the value of attribute options.
-
#parser ⇒ Object
readonly
Returns the value of attribute parser.
Instance Method Summary collapse
- #banner ⇒ Object
- #help ⇒ Object
- #idle_reading ⇒ Object
- #idle_writing ⇒ Object
-
#initialize(option_parser = OptionParser.new) ⇒ ArgumentsParser
constructor
A new instance of ArgumentsParser.
- #inspect_ssl ⇒ Object
- #log_level ⇒ Object
- #log_requests ⇒ Object
- #port ⇒ Object
- #ssl ⇒ Object
- #ssl_certificate ⇒ Object
- #ssl_private_key ⇒ Object
- #telnet_proxy_host ⇒ Object
- #telnet_proxy_port ⇒ Object
- #uri ⇒ Object
- #use_jdk_ssl_provider ⇒ Object
- #validated_port(val, integer_pattern = /^\d+$/) ⇒ Object
- #verbose ⇒ Object
- #version ⇒ Object
- #web_root ⇒ Object
Constructor Details
#initialize(option_parser = OptionParser.new) ⇒ ArgumentsParser
Returns a new instance of ArgumentsParser.
449 450 451 452 453 454 |
# File 'lib/websocket_client.rb', line 449 def initialize(parser = OptionParser.new, = ::WebSocket.client_config.dup) @parser = parser @options = @flags = %i[banner uri log_level help version] @flags.each { |method_name| method(method_name)&.call if respond_to?(method_name) } end |
Instance Attribute Details
#options ⇒ Object (readonly)
Returns the value of attribute options.
447 448 449 |
# File 'lib/websocket_client.rb', line 447 def @options end |
#parser ⇒ Object (readonly)
Returns the value of attribute parser.
447 448 449 |
# File 'lib/websocket_client.rb', line 447 def parser @parser end |
Instance Method Details
#banner ⇒ Object
456 457 458 459 460 |
# File 'lib/websocket_client.rb', line 456 def @parser. = "Usage: #{File.basename($PROGRAM_NAME)} [options]" @parser.separator '' @parser.separator 'Options:' end |
#help ⇒ Object
475 476 477 478 479 480 |
# File 'lib/websocket_client.rb', line 475 def help @parser.on_tail('-?', '--help', 'Show this message') do puts @parser exit end end |
#idle_reading ⇒ Object
98 99 100 101 102 |
# File 'lib/websocket/arguments_parser.rb', line 98 def idle_reading @parser.on('--idle-reading=seconds', 'Amount of time channel can idle without incoming data') do |v| @options[:idle_reading] = v.to_i end end |
#idle_writing ⇒ Object
104 105 106 107 108 |
# File 'lib/websocket/arguments_parser.rb', line 104 def idle_writing @parser.on('--idle-writing=seconds', 'Amount of time channel can idle without outgoing data') do |v| @options[:idle_writing] = v.to_i end end |
#inspect_ssl ⇒ Object
92 93 94 95 96 |
# File 'lib/websocket/arguments_parser.rb', line 92 def inspect_ssl @parser.on('--inspect-ssl', 'Verbosely log SSL messages for encryption confirmation') do @options[:inspect_ssl] = true end end |
#log_level ⇒ Object
468 469 470 471 472 473 |
# File 'lib/websocket_client.rb', line 468 def log_level @parser.on_tail('-v', '--verbose', 'Increase verbosity') do @options[:log_level] ||= 0 @options[:log_level] -= 1 end end |
#log_requests ⇒ Object
110 111 112 113 114 |
# File 'lib/websocket/arguments_parser.rb', line 110 def log_requests @parser.on('-r', '--log-requests', 'Include individual request info in log output') do |v| @options[:log_requests] = v end end |
#port ⇒ Object
49 50 51 52 53 54 |
# File 'lib/websocket/arguments_parser.rb', line 49 def port description = "Port on which to listen for connections; default: #{@options[:port]}" @parser.on('-p', '--port=<port>', Integer, description) do |v| @options[:port] = validated_port(v).to_i end end |
#ssl ⇒ Object
68 69 70 71 72 |
# File 'lib/websocket/arguments_parser.rb', line 68 def ssl @parser.on('-s', '--ssl', 'Use TLS/SSL') do |v| @options[:ssl] = v end end |
#ssl_certificate ⇒ Object
74 75 76 77 78 |
# File 'lib/websocket/arguments_parser.rb', line 74 def ssl_certificate @parser.on('-c', '--ssl-certificate=file', 'Path to ssl certificate file') do |v| @options[:ssl_certificate_file_path] = v end end |
#ssl_private_key ⇒ Object
80 81 82 83 84 |
# File 'lib/websocket/arguments_parser.rb', line 80 def ssl_private_key @parser.on('-k', '--ssl-private-key=file', 'Path to private key file') do |v| @options[:ssl_private_key_file_path] = v end end |
#telnet_proxy_host ⇒ Object
56 57 58 59 60 |
# File 'lib/websocket/arguments_parser.rb', line 56 def telnet_proxy_host @parser.on('--telnet-proxy-host=host', 'Remote telnet proxy host') do |v| @options[:telnet_proxy_host] = v end end |
#telnet_proxy_port ⇒ Object
62 63 64 65 66 |
# File 'lib/websocket/arguments_parser.rb', line 62 def telnet_proxy_port @parser.on('--telnet-proxy-port=port', 'Remote telnet proxy port') do |v| @options[:telnet_proxy_port] = v.to_i end end |
#uri ⇒ Object
462 463 464 465 466 |
# File 'lib/websocket_client.rb', line 462 def uri @parser.on_head('-u', '--uri=<uri>', 'Fully qualified connection string') do |v| @options[:uri] = java.net.URI.new(v) end end |
#use_jdk_ssl_provider ⇒ Object
86 87 88 89 90 |
# File 'lib/websocket/arguments_parser.rb', line 86 def use_jdk_ssl_provider @parser.on('--use-jdk-ssl-provider', 'Use the JDK SSL provider') do @options[:use_jdk_ssl_provider] = true end end |
#validated_port(val, integer_pattern = /^\d+$/) ⇒ Object
42 43 44 45 46 47 |
# File 'lib/websocket/arguments_parser.rb', line 42 def validated_port(val, integer_pattern = /^\d+$/) raise OptionParser::InvalidArgument, "Invalid port: #{v}" unless \ integer_pattern.match?(val.to_s) && val.positive? && val < 65_536 val end |
#verbose ⇒ Object
122 123 124 125 126 127 |
# File 'lib/websocket/arguments_parser.rb', line 122 def verbose @parser.on_tail('-v', '--verbose', 'Increase verbosity') do @options[:log_level] ||= 0 @options[:log_level] -= 1 end end |
#version ⇒ Object
482 483 484 485 486 487 |
# File 'lib/websocket_client.rb', line 482 def version @parser.on_tail('--version', 'Show version') do puts "#{File.basename($PROGRAM_NAME)} version #{::WebSocket::VERSION}" exit end end |
#web_root ⇒ Object
116 117 118 119 120 |
# File 'lib/websocket/arguments_parser.rb', line 116 def web_root @parser.on('-w', '--web-root=path', 'Set the web root to a specific path') do |v| @options[:web_root] = v end end |