require 'aws-sdk-rds' class RdsRotateDbSnapshots module ActionWrappers def with_backoff(*method_names) method_names.each do |m| wrapper = Module.new do define_method(m) do |*args| reset_backoff begin super *args rescue Aws::RDS::Errors => e backoff retry end end end self.prepend wrapper end end end end