1#! /usr/bin/ruby 2# contributed by Minero Aoki. 3 4require 'optparse' 5 6parser = OptionParser.new 7parser.on('-i') { puts "-i" } 8parser.on('-o') { puts '-o' } 9 10subparsers = Hash.new {|h,k| 11 $stderr.puts "no such subcommand: #{k}" 12 exit 1 13} 14subparsers['add'] = OptionParser.new.on('-i') { puts "add -i" } 15subparsers['del'] = OptionParser.new.on('-i') { puts "del -i" } 16subparsers['list'] = OptionParser.new.on('-i') { puts "list -i" } 17 18parser.order!(ARGV) 19subparsers[ARGV.shift].parse!(ARGV) unless ARGV.empty? 20