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

MacKenzie T. Stout
MacKenzie T. Stout
23,972 Points

Passing arguments to an object using run method

With benchmarker object defined I am not sure how to pass arguments to the object

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
end

1 Answer

Jennifer Nordell
STAFF
Jennifer Nordell
Treehouse Staff

You're very close here! You've got it set up nicely. Now for the final pieces. We have to send it a string as the description. This can be whatever you like. And we have to send it a block of code, which can also be whatever you like. Here's how I did it:

benchmarker = SimpleBenchmarker.new
benchmarker.run "my benchmarker" do
  puts "This works!"
end

So we do the run method on our brand new benchmarker and send it a description. Then we send it a code block which in this case just prints out that it works :) Hope this helps!