diff --git a/lib/family.rb b/lib/family.rb index 2f449ea..4e14272 100644 --- a/lib/family.rb +++ b/lib/family.rb @@ -14,7 +14,6 @@ def initialize(first_name, gender) end end - class Family def initialize(name) @surname = name @@ -35,14 +34,12 @@ def add_child(first_name, gender) end def each_member - puts( - <<~EOF - #{ @father.first_name } Jackson - #{ @mother.first_name } Jackson - #{ @children[0].first_name } Jackson - #{ @children[1].first_name } Jackson - #{ @children[2].first_name } Jackson - EOF - ) + [@father, @mother, @children].flatten.each do |member| + yield(member) + end + end + + def full_name(member) + "#{member.first_name} #{@surname}" end end diff --git a/spec/anything_spec.rb b/spec/anything_spec.rb index f9ba99f..f7f1de2 100644 --- a/spec/anything_spec.rb +++ b/spec/anything_spec.rb @@ -5,14 +5,14 @@ describe Family do it 'prints out each member of the family' do - family = Family.new("Jacksons") + family = Family.new("Jackson") family.add_father("Jack", "M") family.add_mother("Jane", "F") 3.times { |i| family.add_child("Child #{i}", "F") } - expect{ family.each_member(&:name) }.to output(<<~EOF + expect{ family.each_member { |member| puts family.full_name(member) } }.to output(<<~EOF Jack Jackson Jane Jackson Child 0 Jackson