summaryrefslogtreecommitdiff
path: root/lib/relationship_manager.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/relationship_manager.rb')
-rw-r--r--lib/relationship_manager.rb31
1 files changed, 0 insertions, 31 deletions
diff --git a/lib/relationship_manager.rb b/lib/relationship_manager.rb
deleted file mode 100644
index 30dfd94..0000000
--- a/lib/relationship_manager.rb
+++ /dev/null
@@ -1,31 +0,0 @@
-# frozen_string_literal: true
-
-require 'singleton'
-
-# RelationshipManager class to manage relationships between people.
-# This class follows the Singleton pattern to ensure there is only one instance
-# of the relationship manager throughout the application.
-class RelationshipManager
- include Singleton
-
- # Links two people as spouses.
- #
- # @param person1 [Person] The first person to link.
- # @param person2 [Person] The second person to link.
- # @raise [RuntimeError] if either person is already linked to someone else.
- # @return [void]
- 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