Dieses Programm ist nur aus historischem Interesse aufgeführt.
Ich selbst verwende inzwsichen optparse, es gibt weitere einfachere Tools die die gleiche Funktion wie GetoptLongWithHelp ausführen.
Verwendung von GetoptLongWithHelp
Mit der Klasse GetoptLong ist eine Verarbeitung von
ARGV-Parametern möglich (mit Prüfung ob Parameter
gültig sind...).
Eine Dokumentation zu seinen Parametern muss man selbst
stricken. Mit meiner Erweiterung GetoptLongWithHelp wird das
etwas vereinfacht.
Beispiel
Beispiel: In ein Skript test.rb wird der folgende Code eingebaut:
require 'GetoptLongWithHelp'
opt = GetoptLongWithHelp.new( [ "--filename", '-f', GetoptLong::REQUIRED_ARGUMENT ], [ "--overwrite", '-o', GetoptLong::NO_ARGUMENT ] )
opt.addHelp('-f',"Style-file (Source)")opt.addHelp2( "-o","Overwrite existing file")
opt.mkHelp(%Q|This program reads a file, convert it and create another File.Usage:test.rb [-h] [-f filename] [-o]|)
opt.each{ |option, selection| case option when '--help' puts opt.help( selection ) exit when "--filename" # ..... end}
- new ist das Original aus der Superklasse GetoptLong.
-
mkHelp definiert einen allgemeinen Hilfstext.
Per Standard wird eine Liste aller Optionen mit Angabe der Parameteranzahl ausgegeben. - addHelp definiert einen Hilftext für eine definierte Option.
- addHelp2 definiert ebenfalls einen Hilftext für eine definierte Option, zusätzlich werden alle
-
Mit test.rb -h wird der mit mkHelp definierte Text ausgegeben. Im Beispiel ergibt sich:
This program reads a file, convert it and create another File. Usage: test.rb [-h] [-f filename] [-o] --filename, -f (arg) --overwrite, -o --help, -h [arg] --HELP, -H -h <switch> for detailed information on switch <switch>
-
Mit test.rb -h <Option> wird der jeweilige Hilfstext ausgegeben. So ergibt test.rb -h f
Style-file (Source)
test.rb -h o ergibt--overwrite, -o Overwrite existing file
Da der Hilfstext für
<o> mit mkHelp2
generiert wurde, werden
alle Optionsbezeichner angefügt.
Verfügbarkeit
Das Skript gibt es im rubyforum
Was gibt es sonst
Es gibt mehrere andere Programme zum Einlesen von Kommandozeilenparameteren mit integrierter Dokumentation.
optparse
Eine Beschreibung findet sich bei www.wikidorf.de/reintechnisch/Inhalt/RubyOptParse