duvet 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +5 -10
- data/Rakefile +0 -31
- data/lib/duvet.rb +2 -9
- data/lib/duvet/version.rb +3 -0
- data/templates/html/file.haml +10 -15
- metadata +49 -78
- data/.document +0 -5
- data/VERSION +0 -1
- data/bin/duvet +0 -46
- data/duvet.gemspec +0 -72
- data/test/helper.rb +0 -10
- data/test/test_duvet.rb +0 -5
- data/test_duvet/lib/klass.rb +0 -25
- data/test_duvet/lib/run.rb +0 -21
- data/test_duvet/test/test_all.rb +0 -59
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# Duvet
|
2
2
|
|
3
3
|
Install with
|
4
4
|
|
@@ -16,15 +16,10 @@ You can change the defaults by passing an options hash to Duvet.start, eg
|
|
16
16
|
`:dir` is the directory to write the coverage to.
|
17
17
|
`:filter` allows you to display only coverage for files that include the string.
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
* Add tests for it. This is important so I don't break it in a
|
24
|
-
future version unintentionally.
|
25
|
-
* Commit, do not mess with rakefile, version, or history.
|
26
|
-
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
27
|
-
* Send me a pull request. Bonus points for topic branches.
|
19
|
+
|
20
|
+
## Credits
|
21
|
+
|
22
|
+
This gem was created because I read this blog post http://engineering.attinteractive.com/2010/08/code-coverage-in-ruby-1-9/.
|
28
23
|
|
29
24
|
## Copyright
|
30
25
|
|
data/Rakefile
CHANGED
@@ -1,24 +1,6 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'rake'
|
3
3
|
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "duvet"
|
8
|
-
gem.summary = %Q{Duvet a simple code coverage tool for ruby 1.9}
|
9
|
-
gem.description = %Q{Duvet a simple code coverage tool for ruby 1.9}
|
10
|
-
gem.email = "m@hawx.me"
|
11
|
-
gem.homepage = "http://github.com/hawx/duvet"
|
12
|
-
gem.authors = ["Joshua Hawxwell"]
|
13
|
-
gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
|
14
|
-
gem.add_development_dependency "yard", ">= 0"
|
15
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
16
|
-
end
|
17
|
-
Jeweler::GemcutterTasks.new
|
18
|
-
rescue LoadError
|
19
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
20
|
-
end
|
21
|
-
|
22
4
|
require 'rake/testtask'
|
23
5
|
Rake::TestTask.new(:test) do |test|
|
24
6
|
test.libs << 'lib' << 'test'
|
@@ -26,19 +8,6 @@ Rake::TestTask.new(:test) do |test|
|
|
26
8
|
test.verbose = true
|
27
9
|
end
|
28
10
|
|
29
|
-
begin
|
30
|
-
require 'rcov/rcovtask'
|
31
|
-
Rcov::RcovTask.new do |test|
|
32
|
-
test.libs << 'test'
|
33
|
-
test.pattern = 'test/**/test_*.rb'
|
34
|
-
test.verbose = true
|
35
|
-
end
|
36
|
-
rescue LoadError
|
37
|
-
task :rcov do
|
38
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
11
|
task :test => :check_dependencies
|
43
12
|
|
44
13
|
task :default => :test
|
data/lib/duvet.rb
CHANGED
@@ -7,7 +7,6 @@ $: << File.join(File.dirname(__FILE__), '..')
|
|
7
7
|
#
|
8
8
|
require 'coverage'
|
9
9
|
require 'ostruct'
|
10
|
-
require 'erubis'
|
11
10
|
require 'pathname'
|
12
11
|
require 'haml'
|
13
12
|
require 'sass'
|
@@ -15,6 +14,7 @@ require 'sass'
|
|
15
14
|
require 'duvet/ext'
|
16
15
|
require 'duvet/covs'
|
17
16
|
require 'duvet/cov'
|
17
|
+
require 'duvet/version'
|
18
18
|
|
19
19
|
|
20
20
|
module Duvet
|
@@ -66,18 +66,11 @@ module Duvet
|
|
66
66
|
@running
|
67
67
|
end
|
68
68
|
|
69
|
-
# Reads the current version from VERSION
|
70
|
-
#
|
71
|
-
# @return [String] current version
|
72
|
-
def self.version
|
73
|
-
File.read( File.join(File.dirname(__FILE__), '..', 'VERSION') )
|
74
|
-
end
|
75
|
-
|
76
69
|
# @return [Hash] hash to merge for templating
|
77
70
|
def self.template_hash
|
78
71
|
{
|
79
72
|
'time' => Time.now,
|
80
|
-
'version' =>
|
73
|
+
'version' => VERSION,
|
81
74
|
'name' => 'duvet'
|
82
75
|
}
|
83
76
|
end
|
data/templates/html/file.haml
CHANGED
@@ -41,26 +41,21 @@
|
|
41
41
|
%tr{:class => "excluded"}
|
42
42
|
%td{:class => "no"}= i
|
43
43
|
%td
|
44
|
-
%pre
|
45
|
-
%code
|
44
|
+
%pre
|
45
|
+
%code
|
46
|
+
#{line}
|
46
47
|
|
47
|
-
- elsif count.zero?
|
48
|
-
%tr{:class => "unran"}
|
49
|
-
%td{:class => "no"}= i
|
50
|
-
%td
|
51
|
-
%pre
|
52
|
-
%code= line.gsub("\n", "")
|
53
|
-
%td
|
54
|
-
%span{:class => "count"}= count
|
55
|
-
|
56
48
|
- else
|
57
|
-
%tr{:class => "ran"}
|
49
|
+
%tr{:class => (count.zero? ? "unran" : "ran") }
|
50
|
+
|
58
51
|
%td{:class => "no"}= i
|
59
52
|
%td
|
60
53
|
%pre
|
61
|
-
%code
|
62
|
-
|
63
|
-
|
54
|
+
%code
|
55
|
+
#{line}
|
56
|
+
|
57
|
+
%td
|
58
|
+
%span{:class => "count"}= count
|
64
59
|
|
65
60
|
|
66
61
|
|
metadata
CHANGED
@@ -1,69 +1,54 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: duvet
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 2
|
8
|
-
- 1
|
9
|
-
version: 0.2.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.2
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Joshua Hawxwell
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
prerelease: false
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
12
|
+
date: 2011-04-16 00:00:00.000000000 +01:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: haml
|
17
|
+
requirement: &2153122340 !ruby/object:Gem::Requirement
|
24
18
|
none: false
|
25
|
-
requirements:
|
26
|
-
- -
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
|
30
|
-
version: "0"
|
31
|
-
type: :development
|
32
|
-
version_requirements: *id001
|
33
|
-
- !ruby/object:Gem::Dependency
|
34
|
-
name: yard
|
19
|
+
requirements:
|
20
|
+
- - ~>
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 3.0.25
|
23
|
+
type: :runtime
|
35
24
|
prerelease: false
|
36
|
-
|
25
|
+
version_requirements: *2153122340
|
26
|
+
- !ruby/object:Gem::Dependency
|
27
|
+
name: thoughtbot-shoulda
|
28
|
+
requirement: &2153121880 !ruby/object:Gem::Requirement
|
37
29
|
none: false
|
38
|
-
requirements:
|
39
|
-
- -
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
|
42
|
-
- 0
|
43
|
-
version: "0"
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
44
34
|
type: :development
|
45
|
-
|
46
|
-
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: *2153121880
|
37
|
+
description: ! " A simple code coverage tool for Ruby 1.9. Add 'Duvet.start' to
|
38
|
+
the top\n of your test helper, to have it write code coverage stuff to 'cov/'.\n"
|
47
39
|
email: m@hawx.me
|
48
|
-
executables:
|
49
|
-
- duvet
|
40
|
+
executables: []
|
50
41
|
extensions: []
|
51
|
-
|
52
|
-
|
53
|
-
- LICENSE
|
54
|
-
- README.md
|
55
|
-
files:
|
56
|
-
- .document
|
57
|
-
- LICENSE
|
42
|
+
extra_rdoc_files: []
|
43
|
+
files:
|
58
44
|
- README.md
|
59
45
|
- Rakefile
|
60
|
-
-
|
61
|
-
- bin/duvet
|
62
|
-
- duvet.gemspec
|
63
|
-
- lib/duvet.rb
|
46
|
+
- LICENSE
|
64
47
|
- lib/duvet/cov.rb
|
65
48
|
- lib/duvet/covs.rb
|
66
49
|
- lib/duvet/ext.rb
|
50
|
+
- lib/duvet/version.rb
|
51
|
+
- lib/duvet.rb
|
67
52
|
- templates/css/dark.sass
|
68
53
|
- templates/css/light.sass
|
69
54
|
- templates/css/rcov.sass
|
@@ -72,43 +57,29 @@ files:
|
|
72
57
|
- templates/js/jquery.js
|
73
58
|
- templates/js/main.js
|
74
59
|
- templates/js/plugins.js
|
75
|
-
|
76
|
-
- test/test_duvet.rb
|
77
|
-
- test_duvet/lib/klass.rb
|
78
|
-
- test_duvet/lib/run.rb
|
79
|
-
- test_duvet/test/test_all.rb
|
80
|
-
has_rdoc: true
|
60
|
+
has_rdoc: false
|
81
61
|
homepage: http://github.com/hawx/duvet
|
82
62
|
licenses: []
|
83
|
-
|
84
63
|
post_install_message:
|
85
64
|
rdoc_options: []
|
86
|
-
|
87
|
-
require_paths:
|
65
|
+
require_paths:
|
88
66
|
- lib
|
89
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
67
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
90
68
|
none: false
|
91
|
-
requirements:
|
92
|
-
- -
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
|
95
|
-
|
96
|
-
version: "0"
|
97
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - ! '>='
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '1.9'
|
73
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
74
|
none: false
|
99
|
-
requirements:
|
100
|
-
- -
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
|
103
|
-
- 0
|
104
|
-
version: "0"
|
75
|
+
requirements:
|
76
|
+
- - ! '>='
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
105
79
|
requirements: []
|
106
|
-
|
107
80
|
rubyforge_project:
|
108
|
-
rubygems_version: 1.
|
81
|
+
rubygems_version: 1.6.2
|
109
82
|
signing_key:
|
110
83
|
specification_version: 3
|
111
|
-
summary: Duvet a simple code coverage tool for
|
112
|
-
test_files:
|
113
|
-
- test/helper.rb
|
114
|
-
- test/test_duvet.rb
|
84
|
+
summary: Duvet a simple code coverage tool for Ruby 1.9.
|
85
|
+
test_files: []
|
data/.document
DELETED
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.2.1
|
data/bin/duvet
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# A command line tool for coverage testing, I'm not sure if this
|
4
|
-
# will even work but it is worth a try!
|
5
|
-
#
|
6
|
-
# Example:
|
7
|
-
# duvet test/test_class.rb
|
8
|
-
#
|
9
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
10
|
-
|
11
|
-
require 'clive'
|
12
|
-
require 'duvet'
|
13
|
-
|
14
|
-
opts = {:dir => 'cov', :style => 'rcov'}
|
15
|
-
c = Clive.new do
|
16
|
-
|
17
|
-
header "Usage: duvet [options] [paths]"
|
18
|
-
|
19
|
-
flag(:css, "PATH", "Use custom css file") do |i|
|
20
|
-
opts[:css] = i
|
21
|
-
end
|
22
|
-
|
23
|
-
flag(:s, :style, "ARG", "Choose style") do |i|
|
24
|
-
opts[:style] = i
|
25
|
-
end
|
26
|
-
|
27
|
-
flag(:d, :dir, "PATH", "Directory to write coverage results") do |i|
|
28
|
-
opts[:dir] = i
|
29
|
-
end
|
30
|
-
|
31
|
-
flag(:f, :filter, "FILTER", "Use a filter to see only needed results") do |i|
|
32
|
-
opts[:filter] = i
|
33
|
-
end
|
34
|
-
|
35
|
-
end
|
36
|
-
|
37
|
-
# Start coverage, then require paths
|
38
|
-
def run(paths, opts)
|
39
|
-
Duvet.start(opts)
|
40
|
-
paths.each do |p|
|
41
|
-
require p
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
args = c.parse(ARGV)
|
46
|
-
run(args, opts)
|
data/duvet.gemspec
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = %q{duvet}
|
8
|
-
s.version = "0.2.1"
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Joshua Hawxwell"]
|
12
|
-
s.date = %q{2010-11-27}
|
13
|
-
s.default_executable = %q{duvet}
|
14
|
-
s.description = %q{Duvet a simple code coverage tool for ruby 1.9}
|
15
|
-
s.email = %q{m@hawx.me}
|
16
|
-
s.executables = ["duvet"]
|
17
|
-
s.extra_rdoc_files = [
|
18
|
-
"LICENSE",
|
19
|
-
"README.md"
|
20
|
-
]
|
21
|
-
s.files = [
|
22
|
-
".document",
|
23
|
-
"LICENSE",
|
24
|
-
"README.md",
|
25
|
-
"Rakefile",
|
26
|
-
"VERSION",
|
27
|
-
"bin/duvet",
|
28
|
-
"duvet.gemspec",
|
29
|
-
"lib/duvet.rb",
|
30
|
-
"lib/duvet/cov.rb",
|
31
|
-
"lib/duvet/covs.rb",
|
32
|
-
"lib/duvet/ext.rb",
|
33
|
-
"templates/css/dark.sass",
|
34
|
-
"templates/css/light.sass",
|
35
|
-
"templates/css/rcov.sass",
|
36
|
-
"templates/html/file.haml",
|
37
|
-
"templates/html/index.haml",
|
38
|
-
"templates/js/jquery.js",
|
39
|
-
"templates/js/main.js",
|
40
|
-
"templates/js/plugins.js",
|
41
|
-
"test/helper.rb",
|
42
|
-
"test/test_duvet.rb",
|
43
|
-
"test_duvet/lib/klass.rb",
|
44
|
-
"test_duvet/lib/run.rb",
|
45
|
-
"test_duvet/test/test_all.rb"
|
46
|
-
]
|
47
|
-
s.homepage = %q{http://github.com/hawx/duvet}
|
48
|
-
s.require_paths = ["lib"]
|
49
|
-
s.rubygems_version = %q{1.3.7}
|
50
|
-
s.summary = %q{Duvet a simple code coverage tool for ruby 1.9}
|
51
|
-
s.test_files = [
|
52
|
-
"test/helper.rb",
|
53
|
-
"test/test_duvet.rb"
|
54
|
-
]
|
55
|
-
|
56
|
-
if s.respond_to? :specification_version then
|
57
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
58
|
-
s.specification_version = 3
|
59
|
-
|
60
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
61
|
-
s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
62
|
-
s.add_development_dependency(%q<yard>, [">= 0"])
|
63
|
-
else
|
64
|
-
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
65
|
-
s.add_dependency(%q<yard>, [">= 0"])
|
66
|
-
end
|
67
|
-
else
|
68
|
-
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
69
|
-
s.add_dependency(%q<yard>, [">= 0"])
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
data/test/helper.rb
DELETED
data/test/test_duvet.rb
DELETED
data/test_duvet/lib/klass.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
class Klass
|
2
|
-
|
3
|
-
attr_accessor :help
|
4
|
-
|
5
|
-
def initialize
|
6
|
-
@help = false
|
7
|
-
end
|
8
|
-
|
9
|
-
def alert!
|
10
|
-
@help = true
|
11
|
-
end
|
12
|
-
|
13
|
-
def shout!
|
14
|
-
if help?
|
15
|
-
"I NEED HELP!"
|
16
|
-
else
|
17
|
-
"EVERYTHING IS OK!"
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def help?
|
22
|
-
@help
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|
data/test_duvet/lib/run.rb
DELETED
data/test_duvet/test/test_all.rb
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', '..', 'lib'))
|
2
|
-
require 'duvet'
|
3
|
-
Duvet.start({:dir => 'test_duvet/cov', :filter => 'test_duvet/lib/'})
|
4
|
-
|
5
|
-
|
6
|
-
require 'rubygems'
|
7
|
-
require 'test/unit'
|
8
|
-
require 'shoulda'
|
9
|
-
|
10
|
-
|
11
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
12
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
13
|
-
require 'klass'
|
14
|
-
require 'run'
|
15
|
-
|
16
|
-
class Test::Unit::TestCase
|
17
|
-
end
|
18
|
-
|
19
|
-
# This should run every line
|
20
|
-
class TestKlass < Test::Unit::TestCase
|
21
|
-
|
22
|
-
should "start out ok" do
|
23
|
-
k = Klass.new
|
24
|
-
assert_equal "EVERYTHING IS OK!", k.shout!
|
25
|
-
end
|
26
|
-
|
27
|
-
should "need help when alerted" do
|
28
|
-
k = Klass.new
|
29
|
-
k.alert!
|
30
|
-
assert_equal true, k.help?
|
31
|
-
end
|
32
|
-
|
33
|
-
should "now shout for help" do
|
34
|
-
k = Klass.new
|
35
|
-
k.alert!
|
36
|
-
assert_equal "I NEED HELP!", k.shout!
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
# This one should not run every line
|
42
|
-
class TestRun < Test::Unit::TestCase
|
43
|
-
|
44
|
-
# should "run it" do
|
45
|
-
# me = Run.new
|
46
|
-
# assert_equal "run it", me.run_it
|
47
|
-
# end
|
48
|
-
|
49
|
-
# should "run here" do
|
50
|
-
# me = Run.new
|
51
|
-
# assert_equal "run here", me.run_here
|
52
|
-
# end
|
53
|
-
|
54
|
-
should "run there" do
|
55
|
-
me = Run.new
|
56
|
-
assert_equal "run there", me.run_there
|
57
|
-
end
|
58
|
-
|
59
|
-
end
|