Election results in the London Borough of Sutton.
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

merge-candidates.rb 1013 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. require_relative "../models"
  2. def show_candidate(id)
  3. c = Candidate.get(id)
  4. template = "%6s\t%50s\t%20s\t%3s"
  5. puts template % [ c.id, c.forenames, c.surname, c.sex ]
  6. ccy_template = "%20s\t%15s\t%20s\t%20s"
  7. c.candidacies.each do |ccy|
  8. puts template % [ ccy.election.body.name, ccy.election.d, ccy.district.name, ccy.party.name]
  9. end
  10. end
  11. winner = ARGV.shift
  12. loser = ARGV.shift
  13. puts "WINNER"
  14. show_candidate(winner)
  15. puts
  16. puts "LOSER"
  17. show_candidate(loser)
  18. puts "Are you sure you want to merge these two candidates? The loser will be deleted. (Y or N)"
  19. answer = gets.chomp.downcase
  20. unless answer == 'y'
  21. puts "Aborting. No changes made to the database."
  22. exit
  23. end
  24. # Transfer all the loser's candidacies to the winner
  25. repository(:default).adapter.select("
  26. UPDATE candidacies
  27. SET candidate_id = #{winner}
  28. WHERE candidate_id = #{loser}
  29. ")
  30. # Delete the loser candidate
  31. Candidate.get(loser).destroy
  32. puts "Merge completed. Here is the merged candidate:"
  33. puts
  34. show_candidate(winner)