class ArgParser::Argument

Attributes

count[R]

These attrs have their meaning after parsing was done

default[R]
help[R]
multiple[R]
name[R]

These attrs are from the manifest that is applied through constructor

required[R]
validate[R]
value[R]

Public Class Methods

new(o_manifest) click to toggle source

Constructs from Hash of properties (see attr_readers)

# File lib/argparser/argument.rb, line 25
def initialize(o_manifest)
  hash2vars(o_manifest)
  reset
  raise ManifestError, ERR_OPTION_NULL if !name || name.strip.empty?
end

Public Instance Methods

add_value(v) click to toggle source

Adds value.

# File lib/argparser/argument.rb, line 39
def add_value(v)
  @count += 1
  multiple ? (@value = @value + Array(v)) : @value = v
  self
end
names() click to toggle source

Just helper

# File lib/argparser/argument.rb, line 20
def names
  [name]
end
printed_help() click to toggle source
# File lib/argparser/argument.rb, line 70
def printed_help
  "%s\n\t%s" % [synopsis, (help || '')]
end
reset() click to toggle source
# File lib/argparser/argument.rb, line 64
def reset
  @value = multiple ? [] : nil
  @count = 0
  self
end
set_default() click to toggle source

Set value to default one if no value provided

# File lib/argparser/argument.rb, line 75
def set_default
  (!default || value?) ? self : add_value(default)
end
synopsis() click to toggle source
# File lib/argparser/argument.rb, line 31
def synopsis
  s = name.dup
  s << '...' if multiple
  s = "[#{s}]" if !required
  s
end
to_s() click to toggle source

Returns value as string

# File lib/argparser/argument.rb, line 56
def to_s
  multiple ? value.map(&:to_s).join(', ') : value.to_s
end
valid?(parser) click to toggle source
# File lib/argparser/argument.rb, line 60
def valid?(parser)
  !validate || validate.call(self, parser)
end
value=(new_value) click to toggle source
# File lib/argparser/argument.rb, line 50
def value=(new_value)
  reset
  Array(new_value).each {|nv| add_value(nv)}
end
value?() click to toggle source

Does option contain it’s value?

# File lib/argparser/argument.rb, line 46
def value?
  @count > 0
end