class Matrixeval::CommandLine::ParseContextArguments
Attributes
context_arguments[R]
options[R]
Public Class Methods
call(context_arguments)
click to toggle source
# File lib/matrixeval/command_line/parse_context_arguments.rb, line 5 def call(context_arguments) new(context_arguments).call end
new(context_arguments)
click to toggle source
# File lib/matrixeval/command_line/parse_context_arguments.rb, line 12 def initialize(context_arguments) @context_arguments = context_arguments @options = {} end
Public Instance Methods
call()
click to toggle source
# File lib/matrixeval/command_line/parse_context_arguments.rb, line 17 def call parse! options end
Private Instance Methods
parse!()
click to toggle source
# File lib/matrixeval/command_line/parse_context_arguments.rb, line 24 def parse! OptionParser.new do |opts| opts.version = Config.target.version opts.program_name = "" opts.banner = <<~USAGE Usage: matrixeval(meval) [OPTIONS] COMMAND USAGE opts.separator "" opts.separator "Options:" opts.on "-a", "--all", "# Run the COMMAND against all matrix combinations" Config.vectors.each do |vector| # short = "-#{vector.short_key}" long = "--#{vector.key} [VERSION]" desc = [ "# Run the COMMAND against a specific #{vector.key} version", "# Options: #{vector.variants.map(&:key).join("/")}", "# Default: #{vector.default_variant.key}", "# Customizable" ] opts.separator "" opts.on(long, *desc) end opts.separator "" opts.separator "Commands: #{Config.commands.join("/")} (Customizable)" opts.separator "" opts.separator "MatrixEval Options:" opts.on("-h", "--help", "# Show help") do puts opts.help exit end opts.on("-v", "--version", "# Show version") do puts opts.version exit end opts.separator "" opts.separator "Customizations:" opts.separator " You can customize all options in matrixeval.yml" Config.target.cli_example_lines.each do |line| opts.separator line end end.parse!(context_arguments, into: options) end