Ruby Ruby Blocks Working With Blocks Block Method Practice: Custom Classes

Jonathan Walz
Jonathan Walz
21,429 Points

I don't understand why this isn't running

This code runs fine in workspaces but doesn't when running inside the challenge window.

It says "It looks like Task 1 is no longer passing."

Help!

simple_benchmarker.rb
class SimpleBenchmarker
  def run(description, &block)
    start_time = Time.now
    block.call
    end_time = Time.now
    elapsed = end_time - start_time

    puts "\n#{description} results"
    puts "Elapsed time: #{elapsed} seconds"
  end
end

benchmarker = SimpleBenchmarker.new
benchmarker.run do
  5.times do 
    print "."
    sleep(rand(0.1..1.0))
  end
end

2 Answers

Hi Jonathan,

The question expects you to have string of the description (first argument) inside block, that's why you haven't add it yet.

See example:

benchmarker = SimpleBenchmarker.new

#add any string you like to add before block
benchmarker.run "description" do
  5.times do 
    print "."
    sleep(rand(0.1..1.0))
  end
end

Hope that helps.

Jonathan Walz
Jonathan Walz
21,429 Points

This worked. Thank you. The error message was confusing since it wasn't the actual problem.

Yeah, I agree with you, it should said "string is missing inside the block" instead going back to task 1. :pensive:

If that helps your question, please kindly mark best answer to let others know about this solution and prevent them repeating mistakes.