Skip to content

Instantly share code, notes, and snippets.

Created February 14, 2014 19:04
Show Gist options
  • Save anonymous/9006967 to your computer and use it in GitHub Desktop.
Save anonymous/9006967 to your computer and use it in GitHub Desktop.
Looking for a more sexy ruby way
def do_work(action, repo, rev)
failures = []
trac_projs = trac_proj_paths
trac_projs.each do |tp|
success = trac_admin_success?(tp, action, repo, rev)
failures << tp unless success
end
do_failures(failures, action, repo, rev) unless failures.empty?
end
def trac_admin_success?(trac_proj, action, repo, rev)
system("echo '#{TRAC_ADMIN} #{trac_proj} changeset #{action} #{repo} #{rev}'")
end
def do_failures(failures, action, repo, rev, count=0)
if count == 4
# TODO log error
return
end
sleep 5
failures.each do |f|
success = trac_admin_success?(f, action, repo, rev)
failures.delete(f) if success
end
count += 1
do_failures(failures, action, repo, rev, count) unless failures.empty?
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment