class Thor::Task

def formatted_usage(klass, namespace=true)

and required options into the given usage.
Returns the formatted usage by injecting given required arguments
def formatted_usage(klass, namespace=true)
  namespace = klass.namespace unless namespace == false
  # Add namespace
  formatted = if namespace
    "#{namespace.gsub(/^(default|thor:runner:)/,'')}:"
  else
    ""
  end
  # Add usage with required arguments
  formatted << if klass && !klass.arguments.empty?
    usage.to_s.gsub(/^#{name}/) do |match|
      match << " " << klass.arguments.map{ |a| a.usage }.compact.join(' ')
    end
  else
    usage.to_s
  end
  # Add required options
  formatted << " #{required_options}"
  # Strip and go!
  formatted.strip
end