Class: ArgParser
Overview
require_relative ‘constants’
Constant Summary collapse
- @@log =
init_logger(STDOUT, Logger::DEBUG)
Class Method Summary collapse
-
.parse(args) ⇒ Object
Returns a structure describing the options.
Methods included from Logging
init_logger, log_level=, log_target=
Methods included from File_Checking
Class Method Details
.parse(args) ⇒ Object
Returns a structure describing the options.
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/argparser.rb', line 37 def self.parse(args) # The options specified on the command line will be collected in <b>options</b>. # We set default values here. = OpenStruct.new @log = @@log $log_level = Logger::INFO .continue = false .list_only = false .queued_item = nil op = OptionParser.new do |opts| opts. = "\nUsage" << ":\t" << "%s <-cp> [url] [local file]" %($0) << "\n\t" << "%s [url] [local file] <-cp>" %($0) opts. << "\n\t" << "%s [-q NUMBER] <-cp>" %($0) opts. << "\n\t" << "%s [-lpchv]" %($0) opts.separator "" opts.separator "Specific options:" opts.on('-q' << ' NUMBER', '--queued NUMBER', "Retry to download an item from the queue") do |item| if(item.to_i > 0) .queued_item = item.to_i @@log.info('stored queued_item ' << item.to_s) end end opts.separator "" opts.separator ("Common options") << ':' # No argument. Show list of queued items. opts.on_tail(("-l"), ("--list"), ("List previously interrupted downloads")) do .list_only = true end # No argument. Retry download after interruption. opts.on_tail(("-c"), ("--continue"), ("Continue interrupted downloads")) do .continue = true @log.debug('continue is true') end # No argument. Set the log-level to debug. opts.on_tail(("-p"), ("--protocol"), ("Be verbose")) do $log_level = Logger::DEBUG @log.level = $log_level @log.debug('Will write out protocol-messages (level: debug).') end # No argument, shows at tail. This will print an options summary. opts.on_tail(("-h"), ("--help"), ("Show this message") ) do puts opts exit true end opts.on_tail(("-v"), ("--version"), ("Show version and program information") ) do puts "\t#{$GEMNAME}, version #{$version}" puts "\tThis program is free software. Use, modify and distribute it\n\tunder the terms of the Gnu General Public License,\n\tversion 3 or later." puts "\t©#{$YEARS} #{$AUTHORS.join(', ')}" exit true end end op.parse!(args) end |