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

I need help for the calling the block

Hello, I'm trying to pass a block when I call the function but it's returning an error. Can you please help me?

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("Your", do puts "Hello world!" end)

2 Answers

Remove the comma and the parentheses on your run call:

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 "Your" do puts "Hello world!" end

Many thanks!