title: OptionParse with no arguments show banner
body: <p>I'm using <code>OptionParser</code> with Ruby.</p>
  
  <p>I other languages such as C, Python, etc., there are similar command-line parameters parsers and they often provide a way to show help message when no parameters are provided or parameters are wrong.</p>
  
  <pre><code>options = {}
  OptionParser.new do |opts|
    opts.banner = "Usage: calc.rb [options]"
  
    opts.on("-l", "--length L", Integer, "Length") { |l| options[:length] = l }
    opts.on("-w", "--width W", Integer, "Width") { |w| options[:width] = w }
  
    opts.on_tail("-h", "--help", "Show this message") do
      puts opts
      exit
    end
  end.parse!
  </code></pre>
  
  <p><strong>Questions</strong>:</p>
  
  <ol>
  <li>Is there a way to set that by default show <code>help</code> message if no parameters were passed (<code>ruby calc.rb</code>)?</li>
  <li>What about if a required parameter is not given or is invalid? Suppose <code>length</code> is a REQUIRED parameter and user do not pass it or pass something wrong like <code>-l FOO</code>?</li>
  </ol>