minitest-ruby_golf_metrics 0.0.8 → 0.0.9
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.md +1 -0
- data/lib/minitest/ruby_golf_metrics/reporter.rb +13 -11
- data/lib/minitest/ruby_golf_metrics/version.rb +1 -1
- metadata +4 -4
data/README.md
CHANGED
@@ -9,6 +9,7 @@ game by its rules:
|
|
9
9
|
* your tasks are tested in the minitest class ```RubyGolfTest```
|
10
10
|
* the contestants implement their solutions as module methods in the module
|
11
11
|
```RubyGolf```
|
12
|
+
* the test methods are called test_hole_<x>_<method_name>[_<numeric_suffix>]
|
12
13
|
|
13
14
|
That's it.
|
14
15
|
|
@@ -11,40 +11,42 @@ module Minitest
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def record(erg)
|
14
|
-
|
14
|
+
method_definition = erg.location.
|
15
15
|
gsub("RubyGolfTest#test_", "").
|
16
16
|
gsub(/ .*$/, "").
|
17
|
-
gsub(/_[0-9]
|
18
|
-
|
19
|
-
@ergs[
|
17
|
+
gsub(/_[0-9]$/, "").
|
18
|
+
gsub(/(hole)_([0-9]+)_/, "\\1 \\2#")
|
19
|
+
@ergs[method_definition] ||= []
|
20
|
+
@ergs[method_definition] << erg.passed?
|
20
21
|
end
|
21
22
|
|
22
23
|
def report
|
23
24
|
io.puts "\nRuby Golf Metrics"
|
24
|
-
@ergs.sort.each do |
|
25
|
+
@ergs.sort.each do |method_definition, ergs|
|
26
|
+
(hole, method_name) = method_definition.split("#")
|
25
27
|
begin
|
26
28
|
if ergs.all?
|
27
29
|
begin
|
28
30
|
counter = CharacterCounter.new(method_name)
|
29
|
-
msg = " #{colorize(method_name, 32)}: #{counter.cumulative_size} character(s)"
|
31
|
+
msg = " #{colorize(hole, method_name, 32)}: #{counter.cumulative_size} character(s)"
|
30
32
|
msg << " (#{counter.called_method_sizes.join(", ")})" if !counter.self_contained?
|
31
33
|
io.puts msg
|
32
34
|
rescue NoMethodError
|
33
|
-
io.puts " #{colorize(method_name, 31)}: UNDEFINED"
|
35
|
+
io.puts " #{colorize(hole, method_name, 31)}: UNDEFINED"
|
34
36
|
end
|
35
37
|
else
|
36
|
-
io.puts " #{colorize(method_name, 31)}: FAILED"
|
38
|
+
io.puts " #{colorize(hole, method_name, 31)}: FAILED"
|
37
39
|
end
|
38
40
|
rescue
|
39
|
-
io.puts " #{colorize(method_name, 31)}: there was an error counting your characters"
|
41
|
+
io.puts " #{colorize(hole, method_name, 31)}: there was an error counting your characters"
|
40
42
|
end
|
41
43
|
end
|
42
44
|
end
|
43
45
|
|
44
46
|
private
|
45
47
|
|
46
|
-
def colorize(
|
47
|
-
options[:nocolor] ? text : "\e[#{color}m#{
|
48
|
+
def colorize(hole, method_name, color)
|
49
|
+
options[:nocolor] ? text : "\e[#{color}m#{hole} - #{method_name}\e[0m"
|
48
50
|
end
|
49
51
|
|
50
52
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest-ruby_golf_metrics
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-11-
|
12
|
+
date: 2013-11-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest
|
@@ -110,7 +110,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
110
110
|
version: '0'
|
111
111
|
segments:
|
112
112
|
- 0
|
113
|
-
hash:
|
113
|
+
hash: 210727395796915245
|
114
114
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
115
|
none: false
|
116
116
|
requirements:
|
@@ -119,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
119
119
|
version: '0'
|
120
120
|
segments:
|
121
121
|
- 0
|
122
|
-
hash:
|
122
|
+
hash: 210727395796915245
|
123
123
|
requirements: []
|
124
124
|
rubyforge_project:
|
125
125
|
rubygems_version: 1.8.23
|