Class: GLI::Switch
- Inherits:
-
CommandLineToken
- Object
- CommandLineToken
- GLI::Switch
- Defined in:
- lib/gli/switch.rb
Overview
Defines a command line switch
Direct Known Subclasses
Instance Attribute Summary
Attributes inherited from CommandLineToken
#aliases, #description, #long_description, #name
Class Method Summary collapse
Instance Method Summary collapse
-
#find_me(arg) ⇒ Object
Finds the switch in the given arg, returning the arg to keep.
-
#get_value!(args) ⇒ Object
Given the argument list, scans it looking for this switch returning true if it’s in the argumennt list (and removing it from the argument list).
-
#initialize(names, description, long_desc = nil) ⇒ Switch
constructor
A new instance of Switch.
Methods inherited from CommandLineToken
Constructor Details
#initialize(names, description, long_desc = nil) ⇒ Switch
Returns a new instance of Switch.
7 8 9 |
# File 'lib/gli/switch.rb', line 7 def initialize(names,description,long_desc=nil) super(names,description,long_desc) end |
Class Method Details
.name_as_string(name) ⇒ Object
51 52 53 54 |
# File 'lib/gli/switch.rb', line 51 def self.name_as_string(name) string = name.to_s string.length == 1 ? "-#{string}" : "--#{string}" end |
Instance Method Details
#find_me(arg) ⇒ Object
Finds the switch in the given arg, returning the arg to keep. Returns an array of size 2:
- 0
-
true or false if the arg was found
- 1
-
the remaining arg to keep in the command line or nil to remove it
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/gli/switch.rb', line 33 def find_me(arg) if @names[arg] return [true,nil] end @names.keys.each() do |name| if name =~ /^-(\w)$/ match_string = "^\\-(\\w*)#{$1}(\\w*)$" match_data = arg.match(match_string) if match_data # Note that if [1] and [2] were both empty # we'd have returned above return [true, "-" + match_data[1] + match_data[2]] end end end [false] end |
#get_value!(args) ⇒ Object
Given the argument list, scans it looking for this switch returning true if it’s in the argumennt list (and removing it from the argument list)
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/gli/switch.rb', line 13 def get_value!(args) idx = -1 args.each_index do |i| result = find_me(args[i]) if result[0] if result[1] args[i] = result[1] else args.delete_at i end return result[0] end end false end |