alternative implementation of docopt.rb