Sha256: 217c7524245436befc953d93294ff28dd5f01a5d18b4e2d59fba62eb015b157b
Contents?: true
Size: 1.52 KB
Versions: 14
Compression:
Stored size: 1.52 KB
Contents
# frozen_string_literal: true require 'eac_ruby_utils/core_ext' module EacCli module RunnerWith module Help class Builder class Alternative enable_method_class SUBCOMMANDS_MACRO = '__SUBCOMMANDS__' common_constructor :builder, :alternative def result ( program_name + alternative.options_argument?.if_present([]) { |_v| ['[options]'] } + options + positionals ).join(builder.word_separator) end def options alternative.options.select(&:show_on_usage?).map do |option| ::EacCli::RunnerWith::Help::Builder.option_long(option) end end def option_argument(option) b = option.long b += '=<value>' if option.argument? b end def positionals alternative.positional.map { |p| positional(p) }.compact_blank end def positional(positional) return unless positional.visible? if positional.subcommand? SUBCOMMANDS_MACRO else r = "<#{positional.name}>" r += '...' if positional.repeat? r = "[#{r}]" if positional.optional? r end end def program_name r = builder.runner.program_name r = [r] unless r.is_a?(::Enumerable) r end end end end end end
Version data entries
14 entries across 14 versions & 2 rubygems