Using an extended usage flag

The extended usage flag allows us to ask for detailed information about our declared flags.
require 'optiflag'

# Title: Using an extended usage flag
#  Description: The extended usage flag allows us to ask for detailed information about our declared flags.
module Example extend OptiFlagSet
  flag "dir"
  optional_flag "log"
  flag "username"
  flag "password"
  usage_flag "h","help","?"
  extended_help_flag "superhelp"

  and_process!
end 

#h#   ruby example_2_1.rb -superhelp --dir directory --username me --password fluffy
#   ruby example_2_1.rb -superhelp --dir directory --username me --password fluffy
#   ruby example_2_1.rb -superhelp --dir directory --username me --password fluffy
#   ruby example_2_1.rb -superhelp --dir directory --username me
#   ruby example_2_1.rb -superhelp --dir directory
#   ruby example_2_1.rb -superhelp 
#h#   ruby example_2_1.rb --superhelp

Using an extended usage flag

>ruby example_2_1.rb -superhelp --dir directory --username me --password fluffy
----------------
           Flag:        -username (Required, takes 1 argument) 
      Long Form:        --username
----------------
           Flag:        -log (Optional, takes 1 argument) 
      Long Form:        --log
----------------
           Flag:        -password (Required, takes 1 argument) 
      Long Form:        --password
----------------
    Description:        Help
           Flag:        -h (Optional, takes 0 arguments) 
      Long Form:        --help
Alternate Flags:        -help, -?, -?              
----------------
    Description:        Extended Help
           Flag:        -superhelp (Optional, takes 0 arguments) 
      Long Form:        --superhelp
----------------
           Flag:        -dir (Required, takes 1 argument) 
      Long Form:        --dir
>ruby example_2_1.rb --superhelp
Errors found:
Missing Flags:
   -dir
   -username
   -password