class Bundler::Thor

def subcommand(subcommand, subcommand_class)

def subcommand(subcommand, subcommand_class)
  subcommands << subcommand.to_s
  subcommand_class.subcommand_help subcommand
  subcommand_classes[subcommand.to_s] = subcommand_class
  define_method(subcommand) do |*args|
    args, opts = Bundler::Thor::Arguments.split(args)
    args.unshift("help") if opts.include? "--help" or opts.include? "-h"
    invoke subcommand_class, args, opts, :invoked_via_subcommand => true, :class_options => options
  end
end