Regex for floating point numbers
Regex for parameters
Informs the user that their usage of 'arg' was wrong, as detailed by 'msg', and dies. Example:
options do opt :volume, :default => 0.0 end die :volume, "too loud" if opts[:volume] > 10.0 die :volume, "too soft" if opts[:volume] < 0.1
In the one-argument case, simply print that message, a notice about -h, and die. Example:
options do opt :whatever # ... end Trollop::die "need at least one filename" if ARGV.empty?
# File lib/trollop.rb, line 727 def die arg, msg=nil if msg $stderr.puts "Error: argument --#{@p.specs[arg][:long]} #{msg}." else $stderr.puts "Error: #{arg}." end $stderr.puts "Try --help for help." exit(-1) end
The top-level entry method into Trollop. Creates
a Parser object, passes the block to it,
then parses args
with it, handling any errors or requests for
help or version information appropriately (and then exiting). Modifies
args
in place. Returns a hash of option values.
The block passed in should contain zero or more calls to opt
(Parser#opt), zero or more calls to text
(Parser#text), and
probably a call to version
(Parser#version).
The returned block contains a value for every option specified with
opt
. The value will be the value given on the commandline, or
the default value if the option was not specified on the commandline. For
every option specified on the commandline, a key “<option
name>_given” will also be set in the hash.
Example:
require 'trollop' opts = Trollop::options do opt :monkey, "Use monkey mode" # a flag --monkey, defaulting to false opt :goat, "Use goat mode", :default => true # a flag --goat, defaulting to true opt :num_limbs, "Number of limbs", :default => 4 # an integer --num-limbs <i>, defaulting to 4 opt :num_thumbs, "Number of thumbs", :type => :int # an integer --num-thumbs <i>, defaulting to nil end ## if called with no arguments p opts # => { :monkey => false, :goat => true, :num_limbs => 4, :num_thumbs => nil } ## if called with --monkey p opts # => {:monkey_given=>true, :monkey=>true, :goat=>true, :num_limbs=>4, :help=>false, :num_thumbs=>nil}
See more examples at trollop.rubyforge.org.
# File lib/trollop.rb, line 689 def options args = ARGV, *a, &b @p = Parser.new(*a, &b) begin vals = @p.parse args args.clear @p.leftovers.each { |l| args << l } vals rescue CommandlineError => e $stderr.puts "Error: #{e.message}." $stderr.puts "Try --help for help." exit(-1) rescue HelpNeeded @p.educate exit rescue VersionNeeded puts @p.version exit end end