class CLIArgValidator

Constants

CONSTANT_TOKENS
ERROR_MESSAGES

Attributes

cli_args[R]

Public Class Methods

new(cli_args) click to toggle source
# File lib/pry-globs/cli_arg_validator.rb, line 13
def initialize(cli_args)
  @cli_args = cli_args
end

Public Instance Methods

args_invalid?() click to toggle source
# File lib/pry-globs/cli_arg_validator.rb, line 17
def args_invalid?
  invalid_argument_presence? || invalid_options? || identifiers_invalid?
end
args_invalid_msg() click to toggle source
# File lib/pry-globs/cli_arg_validator.rb, line 21
def args_invalid_msg
  method_names = %w(options identifier_count identifier_token argument_presence)
  method_names.each_with_object([]) do |method, memo|
    method = "invalid_#{method}"
    memo << ERROR_MESSAGES[method] if send("#{method}?")
  end.join("\n\n")
end

Private Instance Methods

cli_args_identifier() click to toggle source
# File lib/pry-globs/cli_arg_validator.rb, line 59
def cli_args_identifier
  @cli_args_identifier ||= cli_args.identifiers.first
end
identifiers_invalid?() click to toggle source
# File lib/pry-globs/cli_arg_validator.rb, line 43
def identifiers_invalid?
  invalid_identifier_count? || malformed_identifier?
end
incorrect_option?() click to toggle source
# File lib/pry-globs/cli_arg_validator.rb, line 35
def incorrect_option?
  option_present? && cli_args.options.first != '-e'
end
invalid_argument_presence?() click to toggle source
# File lib/pry-globs/cli_arg_validator.rb, line 71
def invalid_argument_presence?
  cli_args.empty?
end
invalid_identifier_count?() click to toggle source
# File lib/pry-globs/cli_arg_validator.rb, line 47
def invalid_identifier_count?
  cli_args.identifiers.size != 1
end
invalid_identifier_token?() click to toggle source
# File lib/pry-globs/cli_arg_validator.rb, line 51
def invalid_identifier_token?
  !invalid_identifier_count? && malformed_identifier?
end
invalid_options?() click to toggle source
# File lib/pry-globs/cli_arg_validator.rb, line 31
def invalid_options?
  cli_args.options.size > 1 || incorrect_option?
end
malformed_identifier?() click to toggle source
# File lib/pry-globs/cli_arg_validator.rb, line 55
def malformed_identifier?
  !(valid_global_variable? || valid_ruby_constant?)
end
option_present?() click to toggle source
# File lib/pry-globs/cli_arg_validator.rb, line 39
def option_present?
  !cli_args.options.empty?
end
valid_global_variable?() click to toggle source
# File lib/pry-globs/cli_arg_validator.rb, line 63
def valid_global_variable?
  cli_args_identifier[0] == '$'
end
valid_ruby_constant?() click to toggle source
# File lib/pry-globs/cli_arg_validator.rb, line 67
def valid_ruby_constant?
  cli_args_identifier.split(//).all? { |letter| CONSTANT_TOKENS.include? letter }
end