class Sshster::ArgvParser

Attributes

command[R]
config[R]
help[R]

Public Class Methods

new(argv) click to toggle source
# File lib/sshster/argv_parser.rb, line 5
def initialize(argv)
  @argv = argv
end

Public Instance Methods

parse() click to toggle source
# File lib/sshster/argv_parser.rb, line 9
def parse
  options = parse_argv(@argv)
  @config = options['-c']
  @help = options['-h']
  @command = detect_command(options)
  self
end
valid?() click to toggle source
# File lib/sshster/argv_parser.rb, line 17
def valid?
  !@command.nil? && valid_commands.include?(@command)
end

Private Instance Methods

detect_command(options) click to toggle source
# File lib/sshster/argv_parser.rb, line 27
def detect_command(options)
  command = options.find { |_k, v| v.nil? }
  command[0].to_sym if command
end
parse_argv(argv) click to toggle source
# File lib/sshster/argv_parser.rb, line 32
def parse_argv(argv)
  Hash[argv.join(' ').scan(/(-?[^=\s]+)(?: ([^-]{1}[\S]+))?/)]
end
valid_commands() click to toggle source
# File lib/sshster/argv_parser.rb, line 23
def valid_commands
  %i[init compose help]
end