diff options
| author | Szymon Szukalski <szymon@skas.io> | 2024-10-24 12:36:22 +1100 |
|---|---|---|
| committer | Szymon Szukalski <szymon@skas.io> | 2024-10-24 12:36:22 +1100 |
| commit | 8d16abb3f57336af73b91e3e4b387f4936a8084d (patch) | |
| tree | 9f65dd8f36a0779aeaa7a42172be284bd7743a7c | |
| parent | 08534a8164699017aa847fef62602abf6ec59e8f (diff) | |
Implement minimal FamilyTreeManager and tests
| -rw-r--r-- | lib/family_tree_manager.rb | 14 | ||||
| -rw-r--r-- | spec/family_tree_manager_spec.rb | 25 |
2 files changed, 39 insertions, 0 deletions
diff --git a/lib/family_tree_manager.rb b/lib/family_tree_manager.rb new file mode 100644 index 0000000..75e1b05 --- /dev/null +++ b/lib/family_tree_manager.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +require 'singleton' + +class FamilyTreeManager + include Singleton + + def initialize + @family_members = {} + end + + def add_child(*params); end + def query_hierarchy(*params); end +end diff --git a/spec/family_tree_manager_spec.rb b/spec/family_tree_manager_spec.rb new file mode 100644 index 0000000..d3d21f1 --- /dev/null +++ b/spec/family_tree_manager_spec.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +require_relative '../lib/family_tree_manager' + +RSpec.describe FamilyTreeManager do + let(:family_tree_manager) { FamilyTreeManager.instance } + + describe '#initialize' do + it 'initialises the family_members hash' do + expect(family_tree_manager.instance_variable_get(:@family_members)).to eq({}) + end + end + + describe '#add_child' do + it 'is defined' do + expect(family_tree_manager).to respond_to(:add_child) + end + end + + describe '#query_hierarchy' do + it 'is defined' do + expect(family_tree_manager).to respond_to(:query_hierarchy) + end + end +end |
