duvet 0.3.3 → 0.4.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/LICENSE +1 -1
- data/README.md +26 -9
- data/Rakefile +13 -2
- data/lib/duvet.rb +101 -43
- data/lib/duvet/cov.rb +58 -65
- data/lib/duvet/covs.rb +25 -37
- data/lib/duvet/version.rb +2 -2
- data/spec/duvet/cov_spec.rb +91 -0
- data/spec/duvet/covs_spec.rb +57 -0
- data/spec/duvet_spec.rb +81 -0
- data/{test → spec}/helper.rb +2 -8
- data/templates/css/styles.css +129 -0
- data/templates/html/file.erb +21 -22
- data/templates/html/index.erb +14 -15
- metadata +19 -44
- data/lib/duvet/core_ext.rb +0 -17
- data/test/test_core_ext.rb +0 -13
- data/test/test_cov.rb +0 -76
- data/test/test_covs.rb +0 -67
- data/test/test_duvet.rb +0 -17
data/templates/html/index.erb
CHANGED
@@ -9,13 +9,13 @@
|
|
9
9
|
<script type="text/javascript" src="plugins.js"></script>
|
10
10
|
</head>
|
11
11
|
<body>
|
12
|
-
|
12
|
+
|
13
13
|
<header>
|
14
14
|
<h1>Coverage</h1>
|
15
15
|
</header>
|
16
|
-
|
16
|
+
|
17
17
|
<input id="filter" name="filter" type="text" placeholder="Filter..." />
|
18
|
-
|
18
|
+
|
19
19
|
<div class="table-wrapper">
|
20
20
|
<table class="summary sort" border="none">
|
21
21
|
<thead>
|
@@ -28,7 +28,7 @@
|
|
28
28
|
<th class="code">Code Coverage</th>
|
29
29
|
</tr>
|
30
30
|
</thead>
|
31
|
-
|
31
|
+
|
32
32
|
<tfoot>
|
33
33
|
<tr class="totals">
|
34
34
|
<td>Total</td>
|
@@ -39,31 +39,30 @@
|
|
39
39
|
<td class="code"></td>
|
40
40
|
</tr>
|
41
41
|
</tfoot>
|
42
|
-
|
42
|
+
|
43
43
|
<tbody>
|
44
44
|
<% files.each do |f| %>
|
45
45
|
<tr>
|
46
46
|
<td class="name">
|
47
|
-
<a href="<%= f
|
47
|
+
<a href="<%= f.file.url %>"><%= f.file.path %></a>
|
48
48
|
</td>
|
49
|
-
<td class="lines"><%= f
|
50
|
-
<td class="loc"><%= f
|
51
|
-
<td class="ran"><%= f
|
52
|
-
<td class="cov"><%= f
|
53
|
-
<td class="code"><%= f
|
49
|
+
<td class="lines"><%= f.lines.total %></td>
|
50
|
+
<td class="loc"><%= f.lines.code %></td>
|
51
|
+
<td class="ran"><%= f.lines.ran %></td>
|
52
|
+
<td class="cov"><%= f.coverage.total %></td>
|
53
|
+
<td class="code"><%= f.coverage.code %></td>
|
54
54
|
</tr>
|
55
55
|
<% end %>
|
56
56
|
</tbody>
|
57
57
|
</table>
|
58
58
|
</div>
|
59
|
-
|
59
|
+
|
60
60
|
<footer>
|
61
61
|
<span>
|
62
|
-
Generated at <%= time %> with
|
62
|
+
Generated at <%= time %> with
|
63
63
|
<a href="http://github.com/hawx/duvet"><%= name %> <%= version %></a>
|
64
64
|
</span>
|
65
65
|
</footer>
|
66
|
-
|
66
|
+
|
67
67
|
</body>
|
68
68
|
</html>
|
69
|
-
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: duvet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,42 +9,19 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
13
|
-
default_executable:
|
12
|
+
date: 2012-01-21 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
17
|
-
requirement: &
|
15
|
+
name: mocha
|
16
|
+
requirement: &2160133680 !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
18
|
requirements:
|
20
|
-
- - ! '
|
19
|
+
- - ! '>'
|
21
20
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
23
|
-
type: :runtime
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: *2156903160
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: sass
|
28
|
-
requirement: &2156902700 !ruby/object:Gem::Requirement
|
29
|
-
none: false
|
30
|
-
requirements:
|
31
|
-
- - ! '>='
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '3.1'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: *2156902700
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: rr
|
39
|
-
requirement: &2156817000 !ruby/object:Gem::Requirement
|
40
|
-
none: false
|
41
|
-
requirements:
|
42
|
-
- - ! '>='
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
version: 1.0.2
|
21
|
+
version: '0'
|
45
22
|
type: :development
|
46
23
|
prerelease: false
|
47
|
-
version_requirements: *
|
24
|
+
version_requirements: *2160133680
|
48
25
|
description: ! " A simple code coverage tool for Ruby 1.9. Add 'Duvet.start' to
|
49
26
|
the top\n of your test helper, to have it write code coverage stuff to 'cov/'.\n"
|
50
27
|
email: m@hawx.me
|
@@ -55,23 +32,21 @@ files:
|
|
55
32
|
- README.md
|
56
33
|
- Rakefile
|
57
34
|
- LICENSE
|
58
|
-
- lib/duvet/core_ext.rb
|
59
35
|
- lib/duvet/cov.rb
|
60
36
|
- lib/duvet/covs.rb
|
61
37
|
- lib/duvet/version.rb
|
62
38
|
- lib/duvet.rb
|
39
|
+
- templates/css/styles.css
|
63
40
|
- templates/css/styles.sass
|
64
41
|
- templates/html/file.erb
|
65
42
|
- templates/html/index.erb
|
66
43
|
- templates/js/jquery.js
|
67
44
|
- templates/js/main.js
|
68
45
|
- templates/js/plugins.js
|
69
|
-
-
|
70
|
-
-
|
71
|
-
-
|
72
|
-
-
|
73
|
-
- test/test_duvet.rb
|
74
|
-
has_rdoc: true
|
46
|
+
- spec/duvet/cov_spec.rb
|
47
|
+
- spec/duvet/covs_spec.rb
|
48
|
+
- spec/duvet_spec.rb
|
49
|
+
- spec/helper.rb
|
75
50
|
homepage: http://github.com/hawx/duvet
|
76
51
|
licenses: []
|
77
52
|
post_install_message:
|
@@ -83,7 +58,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
83
58
|
requirements:
|
84
59
|
- - ! '>='
|
85
60
|
- !ruby/object:Gem::Version
|
86
|
-
version: '
|
61
|
+
version: '0'
|
87
62
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
63
|
none: false
|
89
64
|
requirements:
|
@@ -92,13 +67,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
67
|
version: '0'
|
93
68
|
requirements: []
|
94
69
|
rubyforge_project:
|
95
|
-
rubygems_version: 1.
|
70
|
+
rubygems_version: 1.8.11
|
96
71
|
signing_key:
|
97
72
|
specification_version: 3
|
98
73
|
summary: Duvet is a simple code coverage tool for Ruby 1.9.
|
99
74
|
test_files:
|
100
|
-
-
|
101
|
-
-
|
102
|
-
-
|
103
|
-
-
|
104
|
-
|
75
|
+
- spec/duvet/cov_spec.rb
|
76
|
+
- spec/duvet/covs_spec.rb
|
77
|
+
- spec/duvet_spec.rb
|
78
|
+
- spec/helper.rb
|
79
|
+
has_rdoc:
|
data/lib/duvet/core_ext.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
class Pathname
|
2
|
-
|
3
|
-
# Gets just the extension of the pathname
|
4
|
-
#
|
5
|
-
# @return [String] the extension of the path, without the '.'
|
6
|
-
def extension
|
7
|
-
self.extname[1..-1]
|
8
|
-
end
|
9
|
-
|
10
|
-
# Gets the name of the file without the extension
|
11
|
-
#
|
12
|
-
# @return [String] name of the file
|
13
|
-
def file_name
|
14
|
-
self.basename.to_s[0...-(self.extension.size+1)]
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|
data/test/test_core_ext.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
require_relative 'helper'
|
2
|
-
|
3
|
-
class TestPathname < MiniTest::Unit::TestCase
|
4
|
-
|
5
|
-
def test_has_extension
|
6
|
-
assert_equal 'txt', Pathname.new('folder/file.txt').extension
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_has_file_name
|
10
|
-
assert_equal 'file', Pathname.new('folder/file.txt').file_name
|
11
|
-
end
|
12
|
-
|
13
|
-
end
|
data/test/test_cov.rb
DELETED
@@ -1,76 +0,0 @@
|
|
1
|
-
require_relative 'helper'
|
2
|
-
|
3
|
-
class TestCov < MiniTest::Unit::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
@lines = [5, 2, nil, 2, 4, 3, 0, 0, 0, nil]
|
7
|
-
@cov = Duvet::Cov.new('lib/duvet.rb', @lines)
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_cleans_path
|
11
|
-
cov = Duvet::Cov.new(Dir.pwd + '/test.rb', @lines)
|
12
|
-
assert_equal Pathname.new('test.rb'), cov.path
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_has_lines
|
16
|
-
assert_equal @lines, @cov.lines
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_has_executed_lines
|
20
|
-
assert_equal [5, 2, 2, 4, 3, 0, 0, 0], @cov.code_lines
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_has_ran_lines
|
24
|
-
assert_equal [5, 2, 2, 4, 3], @cov.ran_lines
|
25
|
-
end
|
26
|
-
|
27
|
-
def test_gives_code_coverage_as_decimal
|
28
|
-
assert_equal 0.625, @cov.code_coverage
|
29
|
-
end
|
30
|
-
|
31
|
-
def test_gives_code_coverage_as_percentage
|
32
|
-
assert_equal "62.50%", @cov.code_coverage_percent
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_gives_coverage_as_decimal
|
36
|
-
assert_equal 0.5, @cov.total_coverage
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_gives_coverage_as_percentage
|
40
|
-
assert_equal "50.00%", @cov.total_coverage_percent
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_creates_report
|
44
|
-
assert_equal "lib/duvet.rb\n total: 50.00%\n code: 62.50%\n\n", @cov.report
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_has_data_hash
|
48
|
-
file_data = @cov.data['file']
|
49
|
-
assert_equal 'lib/duvet.rb', file_data['path']
|
50
|
-
assert_equal 'duvet.html', file_data['url']
|
51
|
-
# assert_equal '', @path.readlines
|
52
|
-
assert_equal 10, file_data['lines']
|
53
|
-
assert_equal 8, file_data['lines_code']
|
54
|
-
assert_equal 5, file_data['lines_ran']
|
55
|
-
|
56
|
-
cov_data = @cov.data['coverage']
|
57
|
-
assert_equal "62.50%", cov_data['code']
|
58
|
-
assert_equal "50.00%", cov_data['total']
|
59
|
-
assert_equal @lines, cov_data['lines']
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_renders_with_template
|
63
|
-
stub.proxy(::Erubis::Eruby).new do |obj|
|
64
|
-
stub(obj).result { "yeah" }
|
65
|
-
obj
|
66
|
-
end
|
67
|
-
|
68
|
-
assert_equal @cov.format, "yeah"
|
69
|
-
end
|
70
|
-
|
71
|
-
def test_writes_file
|
72
|
-
stub(File).open("/dev/null/duvet.html", 'w')
|
73
|
-
@cov.write(Pathname.new("/dev/null"))
|
74
|
-
end
|
75
|
-
|
76
|
-
end
|
data/test/test_covs.rb
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
require_relative 'helper'
|
2
|
-
|
3
|
-
class TestCovs < MiniTest::Unit::TestCase
|
4
|
-
|
5
|
-
def setup
|
6
|
-
@files = {
|
7
|
-
'lib/duvet.rb' => [3, 2, 1, 0, nil],
|
8
|
-
'lib/duvet/cov.rb' => [nil, nil, 0, 1, 2]
|
9
|
-
}
|
10
|
-
@covs = Duvet::Covs.new(@files)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_creates_cov_instances
|
14
|
-
assert_kind_of Array, @covs
|
15
|
-
@covs.each do |i|
|
16
|
-
assert_kind_of Duvet::Cov, i
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_creates_report
|
21
|
-
report = <<EOS
|
22
|
-
lib/duvet.rb
|
23
|
-
total: 60.00%
|
24
|
-
code: 75.00%
|
25
|
-
|
26
|
-
lib/duvet/cov.rb
|
27
|
-
total: 40.00%
|
28
|
-
code: 66.67%
|
29
|
-
|
30
|
-
EOS
|
31
|
-
|
32
|
-
assert_equal report, @covs.report
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_has_data_hash
|
36
|
-
assert_kind_of Array, @covs.data['files']
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_renders_with_template
|
40
|
-
stub.proxy(::Erubis::Eruby).new do |obj|
|
41
|
-
stub(obj).result { "yeah" }
|
42
|
-
obj
|
43
|
-
end
|
44
|
-
|
45
|
-
assert_equal "yeah", @covs.format
|
46
|
-
end
|
47
|
-
|
48
|
-
def test_writes_files
|
49
|
-
dir = Pathname.new("tmp")
|
50
|
-
|
51
|
-
stub(FileUtils).mkdir_p(dir)
|
52
|
-
stub(File).open(dir + 'index.html', 'w')
|
53
|
-
|
54
|
-
@covs.each {|i| stub(i).write(dir) }
|
55
|
-
stub(@covs).write_resources(dir)
|
56
|
-
|
57
|
-
@covs.write(dir)
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_warns_if_no_files_to_write
|
61
|
-
empty_covs = Duvet::Covs.new({})
|
62
|
-
assert_output nil, "No files to create coverage for.\n" do
|
63
|
-
empty_covs.write(nil)
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
data/test/test_duvet.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require_relative 'helper'
|
2
|
-
|
3
|
-
class TestDuvet < MiniTest::Unit::TestCase
|
4
|
-
|
5
|
-
def test_has_version
|
6
|
-
assert Duvet::VERSION
|
7
|
-
end
|
8
|
-
|
9
|
-
def test_has_defaults
|
10
|
-
assert_equal({:dir => 'cov', :style => 'rcov'}, Duvet::DEFAULTS)
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_has_template_path
|
14
|
-
assert Duvet::TEMPLATE_PATH.to_s.include?('duvet/templates')
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|