def switch(*names)
      options = extract_options(names)
      names = [names].flatten

      verify_unused(names)
      switch = Switch.new(names,options)
      switches[switch.name] = switch

      clear_nexts
      switches_declaration_order << switch
      switch
    end
def switch(*names)
      options = extract_options(names)
      names = [names].flatten

      verify_unused(names)
      switch = Switch.new(names,options)
      switches[switch.name] = switch

      clear_nexts
      switches_declaration_order << switch
      switch
    end
Create a switch, which is a command line flag that takes no arguments (thus, it _switches_ something on)

 +names+:: a String or Symbol, or an Array of String or Symbol that represent all the different names
           and aliases for this switch.  The last element can be a hash of options:
           +:desc+:: the description, instead of using #desc
           +:long_desc+:: the long_description, instead of using #long_desc
           +:default_value+:: if the switch is omitted, use this as the default value.  By default,  switches default to off, or +false+
           +:negatable+:: if true, this switch will get a negatable form (e.g. <tt>--[no-]switch</tt>, false it will not.  Default is true