Another option if you need to rename multiple files. Checks one of the resource to know if it already ran.
ruby_block "Rename file" do
block do
::Dir.glob("*/*.src").each {|i| File.rename(i, i.gsub(/(.*).src/,'\\1.dst'))};
end
not_if {File.exists?("new_resource.dst")}
end
Another option if you need to rename multiple files. Checks one of the resource to know if it already ran.
Use ruby_block and inside use ::File.Rename(src,dst). Chef framework doesn't have file rename (or at least didn't had until 0.10.18).
Just an example: