class Dry::CLI::Option
@api private
@since 0.1.0
Command line option
def alias_names
- Api: - private
Other tags:
- Since: - 0.1.0
def alias_names aliases .map { |name| name.gsub(/^-{1,2}/, "") } .compact .uniq .map { |name| name.size == 1 ? "-#{name}" : "--#{name}" } .map { |name| boolean? || flag? ? name : "#{name} VALUE" } end
def aliases
- Api: - private
Other tags:
- Since: - 0.1.0
def aliases options[:aliases] || [] end
def argument?
- Api: - private
Other tags:
- Since: - 0.1.0
def argument? false end
def array?
- Api: - private
Other tags:
- Since: - 0.3.0
def array? type == :array end
def boolean?
- Api: - private
Other tags:
- Since: - 0.1.0
def boolean? type == :boolean end
def default
- Api: - private
Other tags:
- Since: - 0.1.0
def default options[:default] end
def desc
- Api: - private
Other tags:
- Since: - 0.1.0
def desc desc = options[:desc] values ? "#{desc}: (#{values.join("/")})" : desc end
def description_name
- Api: - private
Other tags:
- Since: - 0.1.0
def description_name options[:label] || name.upcase end
def flag?
- Api: - private
def flag? type == :flag end
def initialize(name, options = {})
- Api: - private
Other tags:
- Since: - 0.1.0
def initialize(name, options = {}) @name = name @options = options end
def parser_options
- Api: - private
Other tags:
- Since: - 0.1.0
def parser_options dasherized_name = Inflector.dasherize(name) parser_options = [] if boolean? parser_options << "--[no-]#{dasherized_name}" elsif flag? parser_options << "--#{dasherized_name}" else parser_options << "--#{dasherized_name}=#{name}" parser_options << "--#{dasherized_name} #{name}" end parser_options << Array if array? parser_options << values if values parser_options.unshift(*alias_names) if aliases.any? parser_options << desc if desc parser_options end
def required?
- Api: - private
Other tags:
- Since: - 0.1.0
def required? options[:required] end
def type
- Api: - private
Other tags:
- Since: - 0.1.0
def type options[:type] end
def valid_value?(value)
- Api: - private
def valid_value?(value) available_values = values return true if available_values.nil? if array? (value - available_values).empty? else available_values.map(&:to_s).include?(value.to_s) end end
def values
- Api: - private
Other tags:
- Since: - 0.1.0
def values options[:values] end