Class: Clop_Option
- Inherits:
-
Object
- Object
- Clop_Option
- Defined in:
- lib/clop.rb
Overview
require “acs.rb” if not defined? acsrequire
Instance Attribute Summary collapse
-
#defaultvalue ⇒ Object
readonly
Returns the value of attribute defaultvalue.
-
#description ⇒ Object
readonly
Returns the value of attribute description.
-
#longdescription ⇒ Object
readonly
Returns the value of attribute longdescription.
-
#longname ⇒ Object
readonly
Returns the value of attribute longname.
-
#printname ⇒ Object
readonly
Returns the value of attribute printname.
-
#shortname ⇒ Object
readonly
Returns the value of attribute shortname.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
-
#valuestring ⇒ Object
Returns the value of attribute valuestring.
-
#variablename ⇒ Object
readonly
Returns the value of attribute variablename.
Instance Method Summary collapse
- #add_tabs(s, reference_size, n) ⇒ Object
- #eval_value ⇒ Object
-
#initialize(def_str) ⇒ Clop_Option
constructor
A new instance of Clop_Option.
- #parse_option_definition(def_str) ⇒ Object
- #parse_single_lines_done?(s) ⇒ Boolean
- #to_s ⇒ Object
Constructor Details
#initialize(def_str) ⇒ Clop_Option
Returns a new instance of Clop_Option.
9 10 11 |
# File 'lib/clop.rb', line 9 def initialize(def_str) parse_option_definition(def_str) end |
Instance Attribute Details
#defaultvalue ⇒ Object (readonly)
Returns the value of attribute defaultvalue.
5 6 7 |
# File 'lib/clop.rb', line 5 def defaultvalue @defaultvalue end |
#description ⇒ Object (readonly)
Returns the value of attribute description.
5 6 7 |
# File 'lib/clop.rb', line 5 def description @description end |
#longdescription ⇒ Object (readonly)
Returns the value of attribute longdescription.
5 6 7 |
# File 'lib/clop.rb', line 5 def longdescription @longdescription end |
#longname ⇒ Object (readonly)
Returns the value of attribute longname.
5 6 7 |
# File 'lib/clop.rb', line 5 def longname @longname end |
#printname ⇒ Object (readonly)
Returns the value of attribute printname.
5 6 7 |
# File 'lib/clop.rb', line 5 def printname @printname end |
#shortname ⇒ Object (readonly)
Returns the value of attribute shortname.
5 6 7 |
# File 'lib/clop.rb', line 5 def shortname @shortname end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
5 6 7 |
# File 'lib/clop.rb', line 5 def type @type end |
#valuestring ⇒ Object
Returns the value of attribute valuestring.
7 8 9 |
# File 'lib/clop.rb', line 7 def valuestring @valuestring end |
#variablename ⇒ Object (readonly)
Returns the value of attribute variablename.
5 6 7 |
# File 'lib/clop.rb', line 5 def variablename @variablename end |
Instance Method Details
#add_tabs(s, reference_size, n) ⇒ Object
72 73 74 75 |
# File 'lib/clop.rb', line 72 def add_tabs(s, reference_size, n) (1..n).each{|i| s += "\t" if reference_size < 8*i} return s end |
#eval_value ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/clop.rb', line 55 def eval_value case @type when "bool" eval(@valuestring) when "string" @valuestring when "int" @valuestring.to_i when "float" @valuestring.to_f #when /^float\s*vector$/ # @valuestring.gsub(/[\[,\]]/," ").split.map{|x| x.to_f}.to_v else raise "\n type \"#{@type}\" is not recognized\n" end end |
#parse_option_definition(def_str) ⇒ Object
13 14 15 16 17 18 19 20 21 |
# File 'lib/clop.rb', line 13 def parse_option_definition(def_str) while s = def_str.shift break if parse_single_lines_done?(s) end while s = def_str.shift break if s =~ /^\s*$/ and def_str[0] =~ /^\s*$/ @longdescription += s + "\n" end end |
#parse_single_lines_done?(s) ⇒ Boolean
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/clop.rb', line 23 def parse_single_lines_done?(s) if s !~ /\s*(\w.*?)\s*\:/ raise "\n option definition line has wrong format:\n==> #{s} <==\n" end name = $1 content = $' case name when /Short\s+(N|n)ame/ @shortname = content.split[0] when /Long\s+(N|n)ame/ @longname = content.split[0] when /Value\s+(T|t)ype/ @type = content.sub(/^\s+/,"").sub(/\s*(#.*|$)/,"") @valuestring = "false" if @type == "bool" when /Default\s+(V|v)alue/ @defaultvalue = content.sub(/^\s+/,"").sub(/\s*(#.*|$)/,"") @valuestring = @defaultvalue when /Variable\s+(N|n)ame/ @variablename = content.split[0] when /Print\s+(N|n)ame/ @printname = content.sub(/^\s+/,"").sub(/\s*(#.*|$)/,"") when /Description/ @description = content.sub(/^\s+/,"").sub(/\s*(#.*|$)/,"") when /Long\s+(D|d)escription/ @longdescription = "" return true else raise "\n option definition line unrecognized:\n==> #{s} <==\n" end return false end |
#to_s ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/clop.rb', line 77 def to_s if @type == nil s = @description + "\n" elsif @type == "bool" if eval(@valuestring) s = @description + "\n" else s = "" end else s = @description s = add_tabs(s, s.size, 4) s += ": " if defined? @printname s += @printname else s += @variablename end s += " = " unless defined? @printname and @printname == "" #s += "\n " if @type =~ /^float\s*vector$/ s += eval_value.to_s + "\n" end return s end |