coco 0.8 → 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.
- checksums.yaml +13 -5
- data/Changelog.markdown +12 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +3 -3
- data/README.markdown +57 -1
- data/TODO +15 -0
- data/VERSION +1 -1
- data/lib/coco.rb +17 -13
- data/lib/coco/configuration.rb +42 -18
- data/lib/coco/cover/coverage_result.rb +14 -7
- data/lib/coco/formatter/console_formatter.rb +10 -1
- data/lib/coco/helpers.rb +52 -36
- metadata +31 -27
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NTg5MjFhOTYwMDMxYWE4YzNkMzc2YjdjN2EyOGZjMWE4MmE0NDNiMQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
ODNkODRiOWU0ZTgwNWIzNjA1MDU0M2U4NWE0MTYyZmNjYWE1ZmRkYg==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZjhmMGFiNGJkYWM3Zjc4NjE4NWQzZTBiY2M1NjhlMmI5MjEwOGY5MDg4NWE2
|
10
|
+
YTM5N2IxNjY2MzBiNTE4MTNmNDEwMGMwZDJhNjVjNDY0MjI4ZTk1ODAwYzZl
|
11
|
+
Njc1OGVjZmU2YmQ5MGRmMDhjNjhmODQ4MDJiZGU0NGNmMzMzZDA=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MDVkNTcyOTA4NjkzN2JjNTlkZjFiMjIyNTMzOGVkN2JlMDQ2MGM1ZjBkN2M1
|
14
|
+
MTAwMmM2NmZhMmJjYTQ5Yzg4MTkwODY3NjZkYTllMDY1MjkxODc4MWE5ZGYz
|
15
|
+
NmFiZWFkNzU1MDAxNTBjNjk4ZTgzOWNiODA1NTVhNGRmNDdmMTE=
|
data/Changelog.markdown
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
v0.9 (2014-02-02)
|
2
|
+
=================================================
|
3
|
+
|
4
|
+
* New configuration option: `always_run`, to control when to start coco
|
5
|
+
and when to not start it.
|
6
|
+
+ ajouter link dans le terminal
|
7
|
+
* New configuration option: `show_link_in_terminal`, to display the
|
8
|
+
report's index page URI in the terminal.
|
9
|
+
* Partially converts developer's documentation in tomdoc format.
|
10
|
+
* Update gemspec for ruby version 2.1
|
11
|
+
|
12
|
+
|
1
13
|
v0.8 (2013-12-21)
|
2
14
|
=================================================
|
3
15
|
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
coco (0.
|
4
|
+
coco (0.9)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
9
|
diff-lcs (1.2.4)
|
10
|
-
rake (10.
|
10
|
+
rake (10.1.1)
|
11
11
|
rspec (2.13.0)
|
12
12
|
rspec-core (~> 2.13.0)
|
13
13
|
rspec-expectations (~> 2.13.0)
|
@@ -22,5 +22,5 @@ PLATFORMS
|
|
22
22
|
|
23
23
|
DEPENDENCIES
|
24
24
|
coco!
|
25
|
-
rake
|
25
|
+
rake (>= 10.1.0)
|
26
26
|
rspec
|
data/README.markdown
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
coco [](https://travis-ci.org/lkdjiin/coco) [](http://badge.fury.io/rb/coco)
|
2
2
|
==============================
|
3
3
|
|
4
|
-
Code coverage tool for ruby 1.9.2, 1.9.3 and 2.
|
4
|
+
Code coverage tool for ruby 1.9.2, 1.9.3, 2.0 and 2.1.
|
5
5
|
|
6
6
|
Features
|
7
7
|
--------------------------------
|
@@ -82,6 +82,62 @@ to not put any leading spaces or tab at all._
|
|
82
82
|
|
83
83
|
See [more examples](https://github.com/lkdjiin/coco/wiki) on the wiki.
|
84
84
|
|
85
|
+
Advanced configuration
|
86
|
+
---------------------------------
|
87
|
+
|
88
|
+
### When to start coco, and when not to start it
|
89
|
+
For projects whose complete test suite runs in a matter of seconds,
|
90
|
+
running code coverage with every test is fine.
|
91
|
+
But when the test suite takes longer to complete, we typically start to
|
92
|
+
run a single test more often than the complete suite. In such cases,
|
93
|
+
the behavior of **coco** could be really annoying: you run a single
|
94
|
+
test and **coco** reports a infinite list of uncovered files. The
|
95
|
+
problem here is this is a lie. To avoid this behavior, I recommend to
|
96
|
+
run code coverage only from time to time, and with the entire test
|
97
|
+
suite. To do so, **coco** provide the following configuration key:
|
98
|
+
|
99
|
+
__always_run__: If true, **coco** will run every time you start a test.
|
100
|
+
If false, **coco** will run only when you explicitly set an
|
101
|
+
environement variable named `COCO` with something other than `false`,
|
102
|
+
`0` or the empty string.
|
103
|
+
|
104
|
+
#### Example
|
105
|
+
|
106
|
+
Put this in your `.coco.yml` configuration file:
|
107
|
+
|
108
|
+
:always_run: false
|
109
|
+
|
110
|
+
Now, when you run:
|
111
|
+
|
112
|
+
rspec spec/
|
113
|
+
|
114
|
+
**coco** will no start. To start it, you have to set the
|
115
|
+
environement variable `COCO`, like this:
|
116
|
+
|
117
|
+
COCO=1 rspec spec/
|
118
|
+
|
119
|
+
### Index page URI in your terminal
|
120
|
+
|
121
|
+
If your terminal supports opening an URI with a double-clic (or any
|
122
|
+
other method), you may want to display the URI of the report's index
|
123
|
+
page. For that, you have to set the __show_link_in_terminal__ key.
|
124
|
+
|
125
|
+
#### Example
|
126
|
+
|
127
|
+
Put this in your `.coco.yml` configuration file:
|
128
|
+
|
129
|
+
:show_link_in_terminal: true
|
130
|
+
|
131
|
+
Now, when running tests, you will see something like the following:
|
132
|
+
|
133
|
+
$ rspec spec
|
134
|
+
.............
|
135
|
+
[...]
|
136
|
+
|
137
|
+
97% /path/to/bad/tested/file.rb
|
138
|
+
See file:///path/to/your/coverage/index.html
|
139
|
+
|
140
|
+
|
85
141
|
Dependencies
|
86
142
|
--------------------------------
|
87
143
|
|
data/TODO
CHANGED
@@ -1,3 +1,18 @@
|
|
1
|
+
+ option pour lancer coco si présence d'une variable d'environement
|
2
|
+
+ doc dev
|
3
|
+
+ doc readme & examples (maybe wiki ?)
|
4
|
+
+ manual tests
|
5
|
+
|
6
|
+
+ update gemspec -> add ruby version 2.1
|
7
|
+
|
8
|
+
+ ajouter link dans le terminal
|
9
|
+
+ option on/off
|
10
|
+
+ doc readme
|
11
|
+
|
12
|
+
- add 'How to contribute' section
|
13
|
+
|
14
|
+
- translate dev's doc into tomdoc format.
|
15
|
+
|
1
16
|
en gras: def, class, module
|
2
17
|
|
3
18
|
exclure spec et test par défaut
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.9
|
data/lib/coco.rb
CHANGED
@@ -17,17 +17,21 @@ Coverage.start
|
|
17
17
|
|
18
18
|
at_exit do
|
19
19
|
config = Coco::Configuration.new
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
20
|
+
if config.user_wants_to_run?
|
21
|
+
result = Coco::CoverageResult.new(config, Coverage.result)
|
22
|
+
covered = result.covered_from_domain
|
23
|
+
|
24
|
+
sources = Coco::SourceLister.new(config).list
|
25
|
+
uncovered = Coco::UncoveredLister.new(sources, result.all_from_domain).list
|
26
|
+
|
27
|
+
cf = Coco::ConsoleFormatter.new(covered, uncovered)
|
28
|
+
puts cf.format(config[:single_line_report])
|
29
|
+
puts cf.link if config[:show_link_in_terminal]
|
30
|
+
|
31
|
+
html_files = Coco::HtmlFormatter.new(covered).format
|
32
|
+
Coco::HtmlFilesWriter.new(html_files).write
|
33
|
+
|
34
|
+
index = Coco::HtmlIndexFormatter.new(covered, uncovered).format
|
35
|
+
Coco::HtmlIndexWriter.new(index).write
|
36
|
+
end
|
33
37
|
end
|
data/lib/coco/configuration.rb
CHANGED
@@ -4,31 +4,35 @@ require 'yaml'
|
|
4
4
|
|
5
5
|
module Coco
|
6
6
|
|
7
|
-
# I know the configuration of coco.
|
7
|
+
# Public: I know the configuration of coco.
|
8
|
+
# You can override the default configuration by putting a '.coco.yml'
|
9
|
+
# file in YAML format in the project root directory.
|
8
10
|
#
|
9
|
-
#
|
11
|
+
# Examples
|
12
|
+
#
|
13
|
+
# # Read the threshold value
|
10
14
|
# config = Configuration.new
|
11
15
|
# config[:threshold]
|
12
|
-
# =>
|
16
|
+
# # => 100
|
13
17
|
#
|
14
|
-
#
|
15
|
-
#
|
16
|
-
# @example to override the threshold put this line in a '.coco' file:
|
17
|
-
# :threshold: 70
|
18
|
+
# # To override the threshold, put this line in '.coco.yml' file:
|
19
|
+
# # :threshold: 70
|
18
20
|
#
|
19
|
-
#
|
20
|
-
#
|
21
|
+
# Note you can set the threshold above 100% (to be sure to see all
|
22
|
+
# files) but you cannot set it under 0.
|
21
23
|
class Configuration < Hash
|
22
|
-
|
24
|
+
|
25
|
+
# Public: Initialize a Configuration.
|
23
26
|
def initialize
|
24
27
|
self[:threshold] = 100
|
25
28
|
self[:directories] = ['lib']
|
26
29
|
self[:excludes] = []
|
27
30
|
self[:single_line_report] = false
|
31
|
+
self[:always_run] = true
|
32
|
+
self[:show_link_in_terminal] = false
|
28
33
|
if File.exist?('.coco.yml')
|
29
34
|
self.merge!(YAML.load_file('.coco.yml'))
|
30
|
-
# Deprecated: Support of '.coco' file will be
|
31
|
-
# version.
|
35
|
+
# Deprecated: Support of '.coco' file will be removed in v1.0.
|
32
36
|
elsif File.exist?('.coco')
|
33
37
|
self.merge!(YAML.load_file('.coco'))
|
34
38
|
end
|
@@ -37,19 +41,39 @@ module Coco
|
|
37
41
|
expand_directories
|
38
42
|
remove_directories
|
39
43
|
end
|
40
|
-
|
44
|
+
|
45
|
+
# Public: Code coverage not have to run with every test/spec runs.
|
46
|
+
#
|
47
|
+
# Here are the rules:
|
48
|
+
# If the configuration key :always_run is set to true, we always
|
49
|
+
# run the coverage.
|
50
|
+
# In case the configuration key :always_run is set to false, we have
|
51
|
+
# to check for an environement variable named 'COCO' to decide if
|
52
|
+
# we launch the coverage or not. When 'COCO' doesn't exist, or is
|
53
|
+
# the empty string, or '0', or 'false', we don't run coverage.
|
54
|
+
# When 'COCO' is set to any other value, we start coverage.
|
55
|
+
#
|
56
|
+
# Returns true if coverage should start.
|
57
|
+
def user_wants_to_run?
|
58
|
+
if self[:always_run]
|
59
|
+
true
|
60
|
+
else
|
61
|
+
![nil, '', '0', 'false'].include?(ENV['COCO'])
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
41
65
|
private
|
42
|
-
|
66
|
+
|
43
67
|
def expand_directories
|
44
68
|
self[:excludes].each do |file_or_dir|
|
45
69
|
add_files file_or_dir if File.directory?(file_or_dir)
|
46
70
|
end
|
47
71
|
end
|
48
|
-
|
72
|
+
|
49
73
|
def add_files dir
|
50
74
|
Helpers.rb_files_from(dir).each {|file| self[:excludes] << file }
|
51
75
|
end
|
52
|
-
|
76
|
+
|
53
77
|
def remove_directories
|
54
78
|
self[:excludes].delete_if {|file_or_dir| File.directory?(file_or_dir)}
|
55
79
|
end
|
@@ -57,7 +81,7 @@ module Coco
|
|
57
81
|
def ensure_threeshold_compatibility
|
58
82
|
self[:threshold] = self[:threeshold] unless self[:threeshold].nil?
|
59
83
|
end
|
60
|
-
|
84
|
+
|
61
85
|
end
|
62
|
-
|
86
|
+
|
63
87
|
end
|
@@ -2,17 +2,24 @@
|
|
2
2
|
|
3
3
|
module Coco
|
4
4
|
|
5
|
-
# Compute results of interest from the big results information (from
|
5
|
+
# Compute results of interest from the big results information (from
|
6
|
+
# Coverage.result)
|
6
7
|
class CoverageResult
|
7
|
-
|
8
|
+
|
9
|
+
# Returns a Hash coverage for all the sources that live in the root
|
10
|
+
# project folder.
|
8
11
|
attr_reader :all_from_domain
|
9
|
-
|
10
|
-
#
|
11
|
-
#
|
12
|
+
|
13
|
+
# Returns a Hash coverage for sources that are not sufficiently
|
14
|
+
# covered. More technically, the sources that live in the root
|
15
|
+
# project folder and for which the coverage percentage is under the
|
16
|
+
# threshold.
|
12
17
|
attr_reader :covered_from_domain
|
13
18
|
|
14
|
-
#
|
15
|
-
#
|
19
|
+
# Public: Initialize a CoverageResult.
|
20
|
+
#
|
21
|
+
# config - Hash
|
22
|
+
# raw_results - Hash results obtained from Coverage.result.
|
16
23
|
def initialize config, raw_results
|
17
24
|
@exclude_files = config[:excludes]
|
18
25
|
@threshold = config[:threshold]
|
@@ -8,7 +8,7 @@ module Coco
|
|
8
8
|
# @param [Boolean] single_line_report
|
9
9
|
#
|
10
10
|
# return [string] percent covered and associated filenames
|
11
|
-
def format
|
11
|
+
def format(single_line_report = false)
|
12
12
|
if single_line_report
|
13
13
|
single_line_message
|
14
14
|
else
|
@@ -16,6 +16,15 @@ module Coco
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
+
# Returns String.
|
20
|
+
def link
|
21
|
+
unless @formatted_output.empty?
|
22
|
+
"See file://" +
|
23
|
+
File.expand_path(File.join(Coco::HtmlDirectory.new.coverage_dir,
|
24
|
+
'index.html'))
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
19
28
|
# @param [Hash] covered
|
20
29
|
# @param [Array] uncovered
|
21
30
|
def initialize covered, uncovered
|
data/lib/coco/helpers.rb
CHANGED
@@ -2,43 +2,59 @@
|
|
2
2
|
|
3
3
|
module Coco
|
4
4
|
|
5
|
-
#
|
6
|
-
#
|
5
|
+
# Public: Collection of application's helpers methods.
|
6
|
+
#
|
7
|
+
# TODO The app is full of `Dir.pwd`. This is the root project
|
8
|
+
# directory and must be in Configuration class (or Coco module ?).
|
7
9
|
module Helpers
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
10
|
+
class << self
|
11
|
+
|
12
|
+
# Public: Get html filename (from a ruby filename) suitable for
|
13
|
+
# the coverage directory.
|
14
|
+
#
|
15
|
+
# name - String full path filename.
|
16
|
+
#
|
17
|
+
# Examples
|
18
|
+
#
|
19
|
+
# ruby = '/home/user/my_project/lib/source.rb'
|
20
|
+
# html = Helpers.rb2html(ruby)
|
21
|
+
# #=> '_lib_source.rb.html'
|
22
|
+
#
|
23
|
+
# Returns String HTML filename.
|
24
|
+
def rb2html name
|
25
|
+
name.sub(Dir.pwd, '').tr('/\\', '_') + '.html'
|
26
|
+
end
|
27
|
+
|
28
|
+
# Public: Get page title for the index.html file.
|
29
|
+
#
|
30
|
+
# Returns String.
|
31
|
+
def index_title
|
32
|
+
project_name = File.basename(Dir.pwd)
|
33
|
+
version = File.read(File.join($COCO_PATH, 'VERSION')).strip
|
34
|
+
"#{project_name} - Code coverage (coco #{version})"
|
35
|
+
end
|
36
|
+
|
37
|
+
# Public: Expands a bulk of filenames into full path filenames.
|
38
|
+
#
|
39
|
+
# files - List of filenames as an Array of String.
|
40
|
+
#
|
41
|
+
# Returns an Array of String.
|
42
|
+
def expand files
|
43
|
+
files.map {|file| File.expand_path file}
|
44
|
+
end
|
45
|
+
|
46
|
+
# Public: Get all ruby files from a directory, including
|
47
|
+
# sub-directories.
|
48
|
+
#
|
49
|
+
# directory - String directory to look into.
|
50
|
+
#
|
51
|
+
# Returns an Array of String.
|
52
|
+
def rb_files_from directory
|
53
|
+
rb_files = File.join(directory, "**", "*.rb")
|
54
|
+
Dir.glob(rb_files)
|
55
|
+
end
|
40
56
|
end
|
41
|
-
|
57
|
+
|
42
58
|
end
|
43
|
-
|
59
|
+
|
44
60
|
end
|
metadata
CHANGED
@@ -1,62 +1,66 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coco
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.9'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Xavier Nayrac
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description:
|
14
|
-
|
15
|
-
Use it by "require 'coco'" from rspec or unit/test.
|
13
|
+
description: ! '"Code coverage tool for ruby 1.9.2 to 2.1.
|
14
|
+
|
15
|
+
Use it by "require ''coco''" from rspec or unit/test.
|
16
|
+
|
16
17
|
It display names of uncovered files on console.
|
18
|
+
|
17
19
|
It builds simple html report.
|
20
|
+
|
18
21
|
It reports sources that have no tests.
|
19
|
-
|
22
|
+
|
23
|
+
It''s configurable with a simple yaml file.'
|
20
24
|
email: xavier.nayrac@gmail.com
|
21
25
|
executables: []
|
22
26
|
extensions: []
|
23
27
|
extra_rdoc_files: []
|
24
28
|
files:
|
25
29
|
- lib/coco.rb
|
30
|
+
- lib/coco/writer.rb
|
31
|
+
- lib/coco/lister/uncovered_lister.rb
|
32
|
+
- lib/coco/lister/source_lister.rb
|
33
|
+
- lib/coco/lister.rb
|
26
34
|
- lib/coco/configuration.rb
|
27
|
-
- lib/coco/cover.rb
|
28
|
-
- lib/coco/cover/coverage_result.rb
|
29
|
-
- lib/coco/cover/coverage_stat.rb
|
30
|
-
- lib/coco/formatter.rb
|
31
|
-
- lib/coco/formatter/colored_string.rb
|
32
35
|
- lib/coco/formatter/console_formatter.rb
|
36
|
+
- lib/coco/formatter/template.rb
|
33
37
|
- lib/coco/formatter/context.rb
|
38
|
+
- lib/coco/formatter/colored_string.rb
|
39
|
+
- lib/coco/formatter/html_index_formatter.rb
|
34
40
|
- lib/coco/formatter/formatter.rb
|
35
41
|
- lib/coco/formatter/html_formatter.rb
|
36
|
-
- lib/coco/
|
37
|
-
- lib/coco/formatter/template.rb
|
42
|
+
- lib/coco/cover.rb
|
38
43
|
- lib/coco/helpers.rb
|
39
|
-
- lib/coco/
|
40
|
-
- lib/coco/
|
41
|
-
- lib/coco/lister/uncovered_lister.rb
|
42
|
-
- lib/coco/writer.rb
|
44
|
+
- lib/coco/cover/coverage_result.rb
|
45
|
+
- lib/coco/cover/coverage_stat.rb
|
43
46
|
- lib/coco/writer/file_writer.rb
|
44
|
-
- lib/coco/writer/html_directory.rb
|
45
47
|
- lib/coco/writer/html_files_writer.rb
|
48
|
+
- lib/coco/writer/html_directory.rb
|
46
49
|
- lib/coco/writer/html_index_writer.rb
|
47
|
-
-
|
50
|
+
- lib/coco/formatter.rb
|
48
51
|
- template/file.erb
|
49
|
-
- template/img/coconut16.png
|
50
|
-
- template/img/licenses
|
51
52
|
- template/index.erb
|
53
|
+
- template/css/coco.css
|
54
|
+
- template/img/licenses
|
55
|
+
- template/img/coconut16.png
|
56
|
+
- VERSION
|
52
57
|
- COPYING
|
58
|
+
- README.markdown
|
53
59
|
- Changelog.markdown
|
54
60
|
- Gemfile
|
55
|
-
- Gemfile.lock
|
56
|
-
- README.markdown
|
57
61
|
- Rakefile
|
58
62
|
- TODO
|
59
|
-
-
|
63
|
+
- Gemfile.lock
|
60
64
|
homepage: http://lkdjiin.github.com/coco/
|
61
65
|
licenses:
|
62
66
|
- GPL-3
|
@@ -67,12 +71,12 @@ require_paths:
|
|
67
71
|
- lib
|
68
72
|
required_ruby_version: !ruby/object:Gem::Requirement
|
69
73
|
requirements:
|
70
|
-
- - '>='
|
74
|
+
- - ! '>='
|
71
75
|
- !ruby/object:Gem::Version
|
72
76
|
version: 1.9.2
|
73
77
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
78
|
requirements:
|
75
|
-
- - '>='
|
79
|
+
- - ! '>='
|
76
80
|
- !ruby/object:Gem::Version
|
77
81
|
version: '0'
|
78
82
|
requirements: []
|
@@ -80,5 +84,5 @@ rubyforge_project:
|
|
80
84
|
rubygems_version: 2.1.11
|
81
85
|
signing_key:
|
82
86
|
specification_version: 4
|
83
|
-
summary: Code coverage tool for ruby 1.9.2 to 2.
|
87
|
+
summary: Code coverage tool for ruby 1.9.2 to 2.1
|
84
88
|
test_files: []
|