Sha256: ebbc1e067a4fedde2b62e7c4532761e604654eec3e5ccbacb27cd00a6650e313
Contents?: true
Size: 1.11 KB
Versions: 2
Compression:
Stored size: 1.11 KB
Contents
# frozen_string_literal: true require 'eac_ruby_utils/core_ext' module EacCli class Definition class BaseOption DEFAULT_REQUIRED = false enable_listable enable_abstract_methods :build_value, :default_value lists.add_symbol :option, :optional, :usage, :repeat, :required attr_reader :short, :long, :description, :options def initialize(short, long, description, options = {}) @short = short @long = long @description = description @options = options.symbolize_keys @options.assert_valid_keys(::EacCli::Definition::BaseOption.lists.option.values) end def identifier long.to_s.variableize.to_sym end def repeat? options[OPTION_REPEAT] end def required? return true if options.key?(:required) && options.fetch(:required) return false if options.key?(:optional) && options.fetch(:optional) DEFAULT_REQUIRED end def to_s "#{self.class.name.demodulize}[#{identifier}]" end def show_on_usage? options[:usage] end end end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
eac_cli-0.13.0 | lib/eac_cli/definition/base_option.rb |
avm-tools-0.92.0 | vendor/eac_cli/lib/eac_cli/definition/base_option.rb |