Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

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.