diff --git a/Gemfile b/Gemfile index 2dac66f..a063ecb 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,4 @@ source 'https://rubygems.org' -ruby '2.0.0' +ruby '2.2.9' gem 'rspec', '~> 3.0.0.beta2' \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index dfd2ba5..4477308 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -20,3 +20,9 @@ PLATFORMS DEPENDENCIES rspec (~> 3.0.0.beta2) + +RUBY VERSION + ruby 2.2.9p480 + +BUNDLED WITH + 1.16.1 diff --git a/lib/deaf_grandma.rb b/lib/deaf_grandma.rb index 83ad52a..281c3c2 100644 --- a/lib/deaf_grandma.rb +++ b/lib/deaf_grandma.rb @@ -14,14 +14,26 @@ def run! loop do user_input = get_user_input p speak(user_input) + exit if @bye_counter == 3 end end def speak(input) + if input == input.upcase + + if input == "BYE" + @bye_counter += 1 + else + @bye_counter = 0 + end - #Implement your code here <<<<<<<<< + @bye_counter == 3 ? byes_response : yell_response + else + @bye_counter = 0 + soft_speech_response + end end private @@ -35,6 +47,18 @@ def get_user_input gets.chomp end + def soft_speech_response + "SPEAK UP SONNY!" + end + + def byes_response + "SEE YOU LATER SONNY!" + end + + def yell_response + "NOT SINCE 1964!" + 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..b996fb6 100644 --- a/lib/fizzbuzz.rb +++ b/lib/fizzbuzz.rb @@ -2,7 +2,13 @@ class SuperFizzBuzz def run(input) - #Implement your code here + output = "" + + output << "Fizz" if input % 3 == 0 + output << "Buzz" if input % 5 == 0 + output = input if output.empty? + + output end diff --git a/spec/deaf_grandma_spec.rb b/spec/deaf_grandma_spec.rb index cf09766..fa94fa8 100644 --- a/spec/deaf_grandma_spec.rb +++ b/spec/deaf_grandma_spec.rb @@ -9,10 +9,19 @@ end it "says 'NOT SINCE 1964!' when we yell" do - #implement your test here + expect(script.speak("HELLO!")).to eq "NOT SINCE 1964!" end - it "EXTRA CREDIT: How would you test yelling BYE?" do - #implement your test here + it "says 'SEE YOU LATER SONNY! when we say 3 consecutive 'BYE's" do + expect(script.speak("BYE")).to eq "NOT SINCE 1964!" + expect(script.speak("BYE")).to eq "NOT SINCE 1964!" + expect(script.speak("BYE")).to eq "SEE YOU LATER SONNY!" + end + + it "says 'NOT SINCE 1964! when we say 3 'BYE's nonconsecutively" do + script.speak("BYE") + script.speak("BYE") + script.speak("I guess I'll stay") + expect(script.speak("BYE")).to eq "NOT SINCE 1964!" end end diff --git a/spec/fizzbuzz_spec.rb b/spec/fizzbuzz_spec.rb index cfda46b..7ac07d1 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(4)).to eq 4 end end