method

say_with_time

say_with_time(message)
public

No documentation available.

# File activerecord/lib/active_record/migration.rb, line 435
    def say_with_time(message)
      say(message)
      result = nil
      time = Benchmark.measure { result = yield }
      say "%.4fs" % time.real, :subitem
      say("#{result} rows", :subitem) if result.is_a?(Integer)
      result
    end

2Notes

Requires a Block.

joshuapinter · Jan 30, 20122 thanks

Just a little heads up here because it's not obvious.

This requires a block to be passed to it.

==== Example Usage

say_with_time "Reverting all service rates to nil." do
Service.update_all( :rate, nil )
end

# Output
-- Reverting all service rates to nil.
 -> 0.3451s
 -> 2233 rows

Include items affected in output

rab · Nov 17, 2014

If the result returned from the block is an Integer, the output will include a message about that number of "rows" in addition to the elapsed time.

say_with_time "Some complex, custom work" do
counter = 0
# ... do some stuff here that increments the counter ...
counter
end

#=> "-- Some complex, custom work"
#=> "   -> 45.3725s"
#=> "   -> 52880 rows"