diff --git a/lib/deaf_grandma.rb b/lib/deaf_grandma.rb index 83ad52a..2c0c0ee 100644 --- a/lib/deaf_grandma.rb +++ b/lib/deaf_grandma.rb @@ -5,7 +5,7 @@ class DeafGrandma def initialize - @bye_counter = 0 + @bye_counter = 0 end def run! @@ -14,13 +14,21 @@ def run! loop do user_input = get_user_input p speak(user_input) + break if leaving end end def speak(input) - #Implement your code here <<<<<<<<< + if input == "BYE" + @bye_counter += 1 + "SEE YOU LATER SONNY!" if leaving + elsif input == input.upcase + "NOT SINCE 1964!" + else + "SPEAK UP SONNY!" + end end @@ -35,6 +43,10 @@ def get_user_input gets.chomp end + def leaving + @bye_counter == 3 + end + end #Uncomment this next line to run your script but BE SURE to comment it, before you try and run your tests. diff --git a/lib/fizzbuzz.rb b/lib/fizzbuzz.rb index 86f9def..3f81f17 100644 --- a/lib/fizzbuzz.rb +++ b/lib/fizzbuzz.rb @@ -2,7 +2,15 @@ class SuperFizzBuzz def run(input) - #Implement your code here + if input%3 == 0 and input%5 == 0 + "FizzBuzz" + elsif input%3 == 0 + "Fizz" + elsif input%5 == 0 + "Buzz" + else + input + end end @@ -11,3 +19,5 @@ def run(input) #You don't necessarily need to execute this script to complete this challenge, but how would you "run" this method (pun intended) so that it printed a value to the terminal? # #HINT: it's an instance method. +# foobar = SuperFizzBuzz.new +# foobar.run(3) diff --git a/spec/deaf_grandma_spec.rb b/spec/deaf_grandma_spec.rb index cf09766..00e73c9 100644 --- a/spec/deaf_grandma_spec.rb +++ b/spec/deaf_grandma_spec.rb @@ -9,10 +9,12 @@ end it "says 'NOT SINCE 1964!' when we yell" do - #implement your test here + expect(script.speak("GRANDMA")).to eq "NOT SINCE 1964!" end it "EXTRA CREDIT: How would you test yelling BYE?" do - #implement your test here + script.speak("BYE") + script.speak("BYE") + expect(script.speak("BYE")).to eq "SEE YOU LATER SONNY!" end end diff --git a/spec/fizzbuzz_spec.rb b/spec/fizzbuzz_spec.rb index cfda46b..71da170 100644 --- a/spec/fizzbuzz_spec.rb +++ b/spec/fizzbuzz_spec.rb @@ -9,14 +9,14 @@ end it "returns 'Buzz' when my input is divisible by 5" do - #implement your test here + expect(script.run(5)).to eq "Buzz" end it "returns 'FizzBuzz' when input is divisible by 3 & 5" do - #implement your test here + expect(script.run(15)).to eq "FizzBuzz" end it "returns the input number when input isn't divisible by 3, 5, or both" do - #implement your test here + expect(script.run(17)).to eq 17 end end