blob: 4b6a4a2f71923340789f2548356cd06292fc9338 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# frozen_string_literal: true
require 'singleton'
class RelationshipManager
include Singleton
def link_spouses(person1, person2)
# Check if either person is already linked to someone else
if person1.spouse != NilPerson.new && person1.spouse != person2
raise "Cannot link #{person1.name} and #{person2.name}: #{person1.name} is already linked to #{person1.spouse.name}."
end
if person2.spouse != NilPerson.new && person2.spouse != person1
raise "Cannot link #{person1.name} and #{person2.name}: #{person2.name} is already linked to #{person2.spouse.name}."
end
# Link the spouses
person1.spouse = person2
person2.spouse = person1 unless person2.is_a?(NilPerson)
end
end
|