Yes, convergy_by is the standard way to add a note around a block of code during why-run mode. However, as I understood it, converge_by acts like ruby_block, in that it schedules the contained ruby code to run during the convergence stage of the client. However, after the converge_by block is registered, but before it is converged, the following file block is registered. I had understood that to mean that it would load up the current value of file_content and save it for when it converges. My fear was that, since file_content would change after the converge_by block runs to update the key, the file block would still remember the old file_content value and use it instead of re-running file_content to get the new value.

I did a test this morning, and I see that it does fetch the new value even if the file block is outside the converge_by block. I'll add a commit with this change.

Thanks!