I am trying, without success obviously, to check for a mandatory
argument switch using OptionParser.  I have this code:

      opts.on("-m", "--mapfile=FILE",
              "Set data mapping file name",
              "  (default) '#{options.mapfile}'") do |file|
        options.mapfile << file.strip
      end

As far as I can tell, the absence of [] around the argument FILE
should make this a required switch.  However, when I run the script
without any switches at all it does not raise a missing argument
error.  Why not?

Does 'mandatory' refer only to the value supplied to a switch and not
to the presence or absence of the switch itself?