diff --git a/lib/birthday_list.rb b/lib/birthday_list.rb index 8b13789..4c863d5 100644 --- a/lib/birthday_list.rb +++ b/lib/birthday_list.rb @@ -1 +1,28 @@ +class Birthday + def initialize + @birthday_list = [] + end + + def add(name, birthday) + @birthday_list << { :name => name, :birthday => birthday } + @birthday_list + end + + def print_list + @birthday_list.each do |person| + puts "#{person[:name]}, #{person[:birthday]}" + end + end + + def today + @birthday_list.each do |person| + date = Time.new + today = date.strftime("%d %B") + if person[:birthday] == today + print "Today is #{person[:name]}'s birthday!" + end + end + end + +end diff --git a/spec/birthday_list_spec.rb b/spec/birthday_list_spec.rb index 8b13789..6c37293 100644 --- a/spec/birthday_list_spec.rb +++ b/spec/birthday_list_spec.rb @@ -1 +1,30 @@ +require 'birthday_list' +describe Birthday do + + it 'stores first name and birthday' do + birthday_list = Birthday.new + expect(birthday_list.add("Connor", "October")).to eq [{ :name => "Connor", :birthday => "October" }] + end + + it "stores second name and birthday" do + birthday_list = Birthday.new + birthday_list.add("Connor", "October") + expect(birthday_list.add("Michael", "April")).to eq [{ :name => "Connor", :birthday => "October" }, { :name => "Michael", :birthday => "April" }] + end + + it "prints out each name and birthday on a seperate line" do + birthday_list = Birthday.new + birthday_list.add("Connor", "October") + birthday_list.add("Michael", "April") + expect { birthday_list.print_list }.to output("Connor, October\nMichael, April\n").to_stdout + end + + it "finds which dates in the birthday_list array match todays date" do + birthday_list = Birthday.new + birthday_list.add("Connor", "3 October") + birthday_list.add("James", "04 September") + expect { birthday_list.today }.to output("Today is James's birthday!").to_stdout + end + +end