def analyze(obj, command, args, &block)
      @global_options, @command, @original_args = {}, command, args.dup
      @args = translate_args(obj, args)
      return run_help_option(@command) if @global_options[:help]
      during_analyze(&block)
    rescue OptionParser::Error, Error
      raise if Boson.in_shell
      warn "Error: #{$!}"
    end
def analyze(obj, command, args, &block)
      @global_options, @command, @original_args = {}, command, args.dup
      @args = translate_args(obj, args)
      return run_help_option(@command) if @global_options[:help]
      during_analyze(&block)
    rescue OptionParser::Error, Error
      raise if Boson.in_shell
      warn "Error: #{$!}"
    end
Runs a command given its object and arguments