class OptConfig::Option

オプション定義

Attributes

argument[R]
completion[R]
default[R]
description[R]
format[R]
in_config[R]
multiple[R]
name[R]
ovalue[RW]
pre_proc[R]
proc[R]
underscore_is_hyphen[R]
usage_name[R]
value[RW]

Public Class Methods

new(*args) click to toggle source

初期化

args

オプション名(String) のリスト、オプションの属性(Hash)

# File lib/optconfig.rb, line 482
def initialize(*args)
  name = args.dup
  if name.last.is_a? Hash
    attr = name.pop
  else
    attr = {}
  end
  raise "no option name: #{args.inspect}" if name.empty?
  argument = nil
  @usage_name = name
  @name = name.to_a.map do |n|
    unless n =~ /\A([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9_-]+)(\[?=.*)?\z/
      raise "invalid option name: #{n.inspect}"
    end
    n = $1
    argument = $2.nil? ? nil : $2 =~ /\A\[/ ? :optional : true
    n
  end
  @argument = attr.key?(:argument) ? attr[:argument] : argument
  @format = attr.key?(:format) ? attr[:format] : @argument ? true : nil
  @default = attr[:default]
  @description = attr[:description]
  @multiple = attr.key?(:multiple) ? attr[:multiple] : :last
  @completion = attr.key?(:completion) ? attr[:completion] : true
  @underscore_is_hyphen = attr[:underscore_is_hyphen]
  @in_config = attr.key?(:in_config) ? attr[:in_config] : true
  @proc = attr[:proc]
  @pre_proc = attr[:pre_proc]
  @value = @default
  @ovalue = @default
end

Public Instance Methods

may_not_take_argument?() click to toggle source
# File lib/optconfig.rb, line 518
def may_not_take_argument?
  argument == false or argument == :optional or (argument.nil? and !format)
end