From fd1a1064669587a778ca995555254d878904a5f8 Mon Sep 17 00:00:00 2001 From: Szymon Szukalski Date: Fri, 25 Oct 2024 10:20:12 +1100 Subject: Move link_spouses to FamilyFactory --- lib/relationship_manager.rb | 31 ------------------------------- 1 file changed, 31 deletions(-) delete mode 100644 lib/relationship_manager.rb (limited to 'lib/relationship_manager.rb') 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 -- cgit v1.2.3