Class: ProfileFormatter
- Inherits:
-
DottedFormatter
- Object
- DottedFormatter
- ProfileFormatter
- Defined in:
- lib/extensions/mspec/mspec/runner/formatters/profile.rb
Instance Attribute Summary
Attributes inherited from DottedFormatter
Instance Method Summary collapse
-
#after(state) ⇒ Object
Callback for the MSpec :after event.
-
#before(state) ⇒ Object
Callback for the MSpec :before event.
-
#enter(describe) ⇒ Object
Callback for the MSpec :enter event.
- #finish ⇒ Object
-
#initialize(out = nil) ⇒ ProfileFormatter
constructor
A new instance of ProfileFormatter.
- #register ⇒ Object
Methods inherited from DottedFormatter
#abort, #exception, #exception?, #failure?, #print
Constructor Details
#initialize(out = nil) ⇒ ProfileFormatter
Returns a new instance of ProfileFormatter.
5 6 7 8 9 10 11 12 |
# File 'lib/extensions/mspec/mspec/runner/formatters/profile.rb', line 5 def initialize(out=nil) super @describe_name = nil @describe_time = nil @describes = [] @its = [] end |
Instance Method Details
#after(state) ⇒ Object
Callback for the MSpec :after event. Prints a newline to finish the description string output.
41 42 43 44 |
# File 'lib/extensions/mspec/mspec/runner/formatters/profile.rb', line 41 def after(state) @its << [@describe_name, @it_name, Time.now.to_f - @it_time] super end |
#before(state) ⇒ Object
Callback for the MSpec :before event. Prints the it
block string.
32 33 34 35 36 37 |
# File 'lib/extensions/mspec/mspec/runner/formatters/profile.rb', line 32 def before(state) super @it_name = state.it @it_time = Time.now.to_f end |
#enter(describe) ⇒ Object
Callback for the MSpec :enter event. Prints the describe
block string.
21 22 23 24 25 26 27 28 |
# File 'lib/extensions/mspec/mspec/runner/formatters/profile.rb', line 21 def enter(describe) if @describe_time @describes << [@describe_name, Time.now.to_f - @describe_time] end @describe_name = describe @describe_time = Time.now.to_f end |
#finish ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/extensions/mspec/mspec/runner/formatters/profile.rb', line 46 def finish puts "\nProfiling info:" desc = @describes.sort { |a,b| b.last <=> a.last } desc.delete_if { |a| a.last <= 0.001 } show = desc[0, 100] puts "Top #{show.size} describes:" show.each do |des, time| printf "%3.3f - %s\n", time, des end its = @its.sort { |a,b| b.last <=> a.last } its.delete_if { |a| a.last <= 0.001 } show = its[0, 100] puts "\nTop #{show.size} its:" show.each do |des, it, time| printf "%3.3f - %s %s\n", time, des, it end super end |