Wie zu verwenden getoptlong Klasse in ruby?

Ich brauche Hilfe mit getoptlong Klasse in Ruby. Ich muss der Befehl "ausführen" prog_name.ruby -u -i-s filename. Bisher kann ich nur ausführen es mit prog_name.ruby -u filename-i Dateiname -s Dateiname.

Dies ist mein getoptlong code:

require 'getoptlong'

class CommonLog
parser = GetoptLong.new
parser.set_options(["-h", "--help", GetoptLong::NO_ARGUMENT],
                   ["-u", "--url",  GetoptLong::NO_ARGUMENT],
                   ["-i", "--ip",   GetoptLong::NO_ARGUMENT],
                   ["-s", "--stat", GetoptLong::NO_ARGUMENT])

begin
  begin
      opt,arg = parser.get_option
      break if not opt

      case opt
         when "-h" || "--help"
           puts "Usage: -u  filename"
           puts "Usage: -i  filename"
           puts "Usage: -s  filename"
         exit
         when "-u" || "--url"
            log = CommonLog.new(ARGV[0])
            log.urlReport
         when "-i" || "--ip"
            log = CommonLog.new(ARGV[0])
            log.ipReport
         when "-s" || "--stat"
            log = CommonLog.new(ARGV[0])
            log.statReport
         end
      rescue => err
         puts "#{err.class()}: #{err.message}"
         puts "Usage: -h -u -i -s filename"
      exit
   end
end while 1

if ARGV[0] == nil || ARGV.size != 1
   puts "invalid! option and filename required"
   puts "usage: -h -u -i -s filename"
end
  • begin/end innerhalb einer begin/end while 1 block? o_O Wie wäre loop?
InformationsquelleAutor muka | 2011-04-16
Schreibe einen Kommentar