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