instant_disappointment 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.textile +2 -2
- data/lib/instant_disappointment_formatter.rb +51 -1
- metadata +11 -4
data/README.textile
CHANGED
@@ -17,14 +17,14 @@ h1. Usage
|
|
17
17
|
If you run @spec@ from the command line:
|
18
18
|
|
19
19
|
<pre>
|
20
|
-
spec --require instant_disappointment_formatter --
|
20
|
+
spec --require instant_disappointment_formatter --format Spec::Runner::Formatter::InstantDisappointmentFormatter <your_specfiles_here>
|
21
21
|
</pre>
|
22
22
|
|
23
23
|
If you use a @spec.opts@ file:
|
24
24
|
|
25
25
|
<pre>
|
26
26
|
--require instant_disappointment_formatter
|
27
|
-
--
|
27
|
+
--format Spec::Runner::Formatter::InstantDisappointmentFormatter
|
28
28
|
</pre>
|
29
29
|
|
30
30
|
h1. Example
|
@@ -4,7 +4,27 @@ module Spec
|
|
4
4
|
module Runner
|
5
5
|
module Formatter
|
6
6
|
class InstantDisappointmentFormatter < ProgressBarFormatter
|
7
|
-
VERSION = "1.
|
7
|
+
VERSION = "1.1.0"
|
8
|
+
SHOW_TOP = (ENV['PROFILE_SHOW_TOP'] || 20).to_i
|
9
|
+
|
10
|
+
def initialize(*args)
|
11
|
+
super
|
12
|
+
@example_times = []
|
13
|
+
end
|
14
|
+
|
15
|
+
def example_started(*args)
|
16
|
+
@time = Time.now
|
17
|
+
end
|
18
|
+
|
19
|
+
def example_passed(example)
|
20
|
+
super
|
21
|
+
@example_times << [
|
22
|
+
example_group.description,
|
23
|
+
example.description,
|
24
|
+
Time.now - @time
|
25
|
+
]
|
26
|
+
end
|
27
|
+
|
8
28
|
alias :example_failed_without_instant_disappointment :example_failed
|
9
29
|
alias :dump_failure_without_lockout :dump_failure
|
10
30
|
|
@@ -22,8 +42,38 @@ module Spec
|
|
22
42
|
end
|
23
43
|
|
24
44
|
def start_dump
|
45
|
+
dump_group_times
|
46
|
+
dump_example_times
|
25
47
|
@in_dump = true
|
26
48
|
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
def dump_example_times
|
53
|
+
@output.puts "\n\nSingle examples:\n"
|
54
|
+
|
55
|
+
sorted_by_time(@example_times)[0..SHOW_TOP].each do |group, example, time|
|
56
|
+
@output.puts "#{red(sprintf("%.7f", time))} #{group} #{example}"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def dump_group_times
|
61
|
+
@output.puts "\n\nGroups:\n"
|
62
|
+
|
63
|
+
group_times = Hash.new(0)
|
64
|
+
@example_times.each do |group, example, time|
|
65
|
+
group_times[group]+=time
|
66
|
+
end
|
67
|
+
|
68
|
+
sorted_by_time(group_times)[0..SHOW_TOP].each do |group,time|
|
69
|
+
@output.puts "#{red(sprintf("%.7f", time))} #{group}"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
#sorted by last ascending
|
74
|
+
def sorted_by_time(times)
|
75
|
+
times.to_a.sort_by{|x| x.last}.reverse
|
76
|
+
end
|
27
77
|
end
|
28
78
|
end
|
29
79
|
end
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: instant_disappointment
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 19
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 1
|
8
|
+
- 1
|
7
9
|
- 0
|
8
|
-
|
9
|
-
version: 1.0.0
|
10
|
+
version: 1.1.0
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Danny Burkes
|
@@ -14,16 +15,18 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date:
|
18
|
+
date: 2011-07-18 00:00:00 -07:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: rspec
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
27
|
- - ">="
|
26
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
27
30
|
segments:
|
28
31
|
- 0
|
29
32
|
version: "0"
|
@@ -51,23 +54,27 @@ rdoc_options: []
|
|
51
54
|
require_paths:
|
52
55
|
- lib
|
53
56
|
required_ruby_version: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
54
58
|
requirements:
|
55
59
|
- - ">="
|
56
60
|
- !ruby/object:Gem::Version
|
61
|
+
hash: 3
|
57
62
|
segments:
|
58
63
|
- 0
|
59
64
|
version: "0"
|
60
65
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
61
67
|
requirements:
|
62
68
|
- - ">="
|
63
69
|
- !ruby/object:Gem::Version
|
70
|
+
hash: 3
|
64
71
|
segments:
|
65
72
|
- 0
|
66
73
|
version: "0"
|
67
74
|
requirements: []
|
68
75
|
|
69
76
|
rubyforge_project: instant_disappointment
|
70
|
-
rubygems_version: 1.3.
|
77
|
+
rubygems_version: 1.3.7
|
71
78
|
signing_key:
|
72
79
|
specification_version: 3
|
73
80
|
summary: No time for ping pong- start fixing the specs now!
|