slather 2.2.0 → 2.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/bin/slather +4 -2
- data/lib/slather/command/coverage_command.rb +6 -0
- data/lib/slather/command/version_command.rb +6 -0
- data/lib/slather/coverage_service/html_output.rb +5 -3
- data/lib/slather/coverage_service/simple_output.rb +2 -2
- data/lib/slather/project.rb +18 -4
- data/lib/slather/version.rb +1 -1
- data/slather.gemspec +2 -2
- data/spec/slather/coverage_file_spec.rb +5 -5
- data/spec/slather/coverage_service/coveralls_spec.rb +5 -5
- data/spec/slather/coverage_service/html_output_spec.rb +4 -0
- data/spec/slather/project_spec.rb +18 -2
- data/spec/spec_helper.rb +1 -1
- metadata +11 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8096ea189a9cebaad5a72f45dce58fd1f9f6b284
|
4
|
+
data.tar.gz: 15d24647aeba911b4e194dd150ea9700335fe21c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 311d63ca7b84e89bbdda3f1f0a0d7063df7c2e890ca96bb9a81d3aead8263ee14a18b0264d506107600d0985cf4fa3519527d2808ea3a169b21b5d9ba4c739fc
|
7
|
+
data.tar.gz: e138521b5d249354893eb05c24a88edf245cf649d1c0338aa3e757721bd9e7127132ae5b84d456e1562b58ec7b32b1f574149763c74eb4e7b14d8d10e5cb7365
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,20 @@
|
|
2
2
|
|
3
3
|
## master
|
4
4
|
|
5
|
+
## v2.2.1
|
6
|
+
|
7
|
+
* Make `project.coverage_files` public
|
8
|
+
* Add docs attribute reader to `project.rb`
|
9
|
+
[bootstraponline](https://github.com/bootstraponline)
|
10
|
+
[#209](https://github.com/SlatherOrg/slather/pull/209)
|
11
|
+
|
12
|
+
* Add `--decimals` flag
|
13
|
+
[bootstraponline](https://github.com/bootstraponline)
|
14
|
+
[#207](https://github.com/SlatherOrg/slather/pull/207)
|
15
|
+
|
16
|
+
* Add `slather version` command
|
17
|
+
[bootstraponline](https://github.com/bootstraponline)
|
18
|
+
[#208](https://github.com/SlatherOrg/slather/pull/208)
|
5
19
|
|
6
20
|
## v2.2.0
|
7
21
|
|
data/bin/slather
CHANGED
@@ -4,12 +4,14 @@ require 'yaml'
|
|
4
4
|
require_relative '../lib/slather'
|
5
5
|
require_relative '../lib/slather/command/coverage_command'
|
6
6
|
require_relative '../lib/slather/command/setup_command'
|
7
|
+
require_relative '../lib/slather/command/version_command'
|
7
8
|
|
8
9
|
class MainCommand < Clamp::Command
|
9
10
|
self.default_subcommand = "coverage"
|
10
11
|
|
11
|
-
subcommand
|
12
|
-
subcommand
|
12
|
+
subcommand 'setup', 'Configures a .xcodeproj for test coverage generation', SetupCommand
|
13
|
+
subcommand 'coverage', 'Computes coverage for the supplied project', CoverageCommand
|
14
|
+
subcommand 'version', 'Prints slather version', VersionCommand
|
13
15
|
end
|
14
16
|
|
15
17
|
MainCommand.run
|
@@ -27,6 +27,7 @@ class CoverageCommand < Clamp::Command
|
|
27
27
|
option ["--binary-file"], "BINARY_FILE", "The binary file against the which the coverage will be run", :multivalued => true
|
28
28
|
option ["--binary-basename"], "BINARY_BASENAME", "Basename of the file against which the coverage will be run", :multivalued => true
|
29
29
|
option ["--source-files"], "SOURCE_FILES", "A Dir.glob compatible pattern used to limit the lookup to specific source files. Ignored in gcov mode.", :multivalued => true
|
30
|
+
option ["--decimals"], "DECIMALS", "The amount of decimals to use for % coverage reporting"
|
30
31
|
|
31
32
|
def execute
|
32
33
|
puts "Slathering..."
|
@@ -44,6 +45,7 @@ class CoverageCommand < Clamp::Command
|
|
44
45
|
setup_binary_file
|
45
46
|
setup_binary_basename
|
46
47
|
setup_source_files
|
48
|
+
setup_decimals
|
47
49
|
|
48
50
|
project.configure
|
49
51
|
|
@@ -139,4 +141,8 @@ class CoverageCommand < Clamp::Command
|
|
139
141
|
def setup_source_files
|
140
142
|
project.source_files = source_files_list if !source_files_list.empty?
|
141
143
|
end
|
144
|
+
|
145
|
+
def setup_decimals
|
146
|
+
project.decimals = decimals if decimals
|
147
|
+
end
|
142
148
|
end
|
@@ -5,6 +5,8 @@ module Slather
|
|
5
5
|
module CoverageService
|
6
6
|
module HtmlOutput
|
7
7
|
|
8
|
+
attr_reader :docs
|
9
|
+
|
8
10
|
def coverage_file_class
|
9
11
|
if input_format == "profdata"
|
10
12
|
Slather::ProfdataCoverageFile
|
@@ -79,7 +81,7 @@ module Slather
|
|
79
81
|
cov.h4 {
|
80
82
|
percentage = (total_tested_lines / total_relevant_lines.to_f) * 100.0
|
81
83
|
cov.span "Total Coverage : "
|
82
|
-
cov.span '
|
84
|
+
cov.span decimal_f(percentage) + '%', :class => class_for_coverage_percentage(percentage), :id => "total_coverage"
|
83
85
|
}
|
84
86
|
|
85
87
|
cov.input(:class => "search", :placeholder => "Search")
|
@@ -105,7 +107,7 @@ module Slather
|
|
105
107
|
cov.tr {
|
106
108
|
percentage = coverage_file.percentage_lines_tested
|
107
109
|
|
108
|
-
cov.td { cov.span
|
110
|
+
cov.td { cov.span decimal_f(percentage), :class => "percentage #{class_for_coverage_percentage(percentage)} data_percentage" }
|
109
111
|
cov.td(:class => "data_filename") {
|
110
112
|
cov.a filename, :href => filename_link
|
111
113
|
}
|
@@ -140,7 +142,7 @@ module Slather
|
|
140
142
|
builder = Nokogiri::HTML::Builder.with(template.at('#reports')) { |cov|
|
141
143
|
cov.h2(:class => "cov_title") {
|
142
144
|
cov.span("Coverage for \"#{filename}\"" + (!is_file_empty ? " : " : ""))
|
143
|
-
cov.span("#{
|
145
|
+
cov.span("#{decimal_f(percentage)}%", :class => class_for_coverage_percentage(percentage)) unless is_file_empty
|
144
146
|
}
|
145
147
|
|
146
148
|
cov.h4("(#{coverage_file.num_lines_tested} of #{coverage_file.num_lines_testable} relevant lines covered)", :class => "cov_subtitle")
|
@@ -19,7 +19,7 @@ module Slather
|
|
19
19
|
|
20
20
|
lines_tested = coverage_file.num_lines_tested
|
21
21
|
total_lines = coverage_file.num_lines_testable
|
22
|
-
percentage =
|
22
|
+
percentage = decimal_f([coverage_file.percentage_lines_tested])
|
23
23
|
|
24
24
|
total_project_lines_tested += lines_tested
|
25
25
|
total_project_lines += total_lines
|
@@ -42,7 +42,7 @@ module Slather
|
|
42
42
|
puts "##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='%i']" % total_project_lines
|
43
43
|
end
|
44
44
|
|
45
|
-
total_percentage =
|
45
|
+
total_percentage = decimal_f([(total_project_lines_tested / total_project_lines.to_f) * 100.0])
|
46
46
|
puts "Test Coverage: #{total_percentage}%"
|
47
47
|
end
|
48
48
|
|
data/lib/slather/project.rb
CHANGED
@@ -27,8 +27,8 @@ module Xcodeproj
|
|
27
27
|
|
28
28
|
# Patch xcschemes too
|
29
29
|
if format == :clang
|
30
|
-
if Gem::Requirement.new('
|
31
|
-
# @todo This will require to bump the xcodeproj dependency to
|
30
|
+
if Gem::Requirement.new('>= 0.28.2') =~ Gem::Version.new(Xcodeproj::VERSION)
|
31
|
+
# @todo This will require to bump the xcodeproj dependency to >= 0.28.2
|
32
32
|
# (which would require to bump cocoapods too)
|
33
33
|
schemes_path = Xcodeproj::XCScheme.shared_data_dir(self.path)
|
34
34
|
Xcodeproj::Project.schemes(self.path).each do |scheme_name|
|
@@ -51,7 +51,8 @@ module Slather
|
|
51
51
|
class Project < Xcodeproj::Project
|
52
52
|
|
53
53
|
attr_accessor :build_directory, :ignore_list, :ci_service, :coverage_service, :coverage_access_token, :source_directory,
|
54
|
-
:output_directory, :xcodeproj, :show_html, :verbose_mode, :input_format, :scheme, :workspace, :binary_file, :binary_basename, :source_files
|
54
|
+
:output_directory, :xcodeproj, :show_html, :verbose_mode, :input_format, :scheme, :workspace, :binary_file, :binary_basename, :source_files,
|
55
|
+
:decimals
|
55
56
|
|
56
57
|
alias_method :setup_for_coverage, :slather_setup_for_coverage
|
57
58
|
|
@@ -106,7 +107,6 @@ module Slather
|
|
106
107
|
gcov_coverage_files
|
107
108
|
end
|
108
109
|
end
|
109
|
-
private :coverage_files
|
110
110
|
|
111
111
|
def gcov_coverage_files
|
112
112
|
coverage_files = Dir["#{build_directory}/**/*.gcno"].map do |file|
|
@@ -238,6 +238,7 @@ module Slather
|
|
238
238
|
configure_output_directory
|
239
239
|
configure_input_format
|
240
240
|
configure_binary_file
|
241
|
+
configure_decimals
|
241
242
|
rescue => e
|
242
243
|
puts e.message
|
243
244
|
puts failure_help_string
|
@@ -295,6 +296,12 @@ module Slather
|
|
295
296
|
self.scheme ||= self.class.yml["scheme"] if self.class.yml["scheme"]
|
296
297
|
end
|
297
298
|
|
299
|
+
def configure_decimals
|
300
|
+
return if self.decimals
|
301
|
+
self.decimals ||= self.class.yml["decimals"] if self.class.yml["decimals"]
|
302
|
+
self.decimals = self.decimals ? Integer(self.decimals) : 2
|
303
|
+
end
|
304
|
+
|
298
305
|
def configure_workspace
|
299
306
|
self.workspace ||= self.class.yml["workspace"] if self.class.yml["workspace"]
|
300
307
|
end
|
@@ -338,6 +345,13 @@ module Slather
|
|
338
345
|
end
|
339
346
|
end
|
340
347
|
|
348
|
+
def decimal_f decimal_arg
|
349
|
+
configure_decimals unless decimals
|
350
|
+
decimal = "%.#{decimals}f" % decimal_arg
|
351
|
+
return decimal if decimals == 2 # special case 2 for backwards compatibility
|
352
|
+
decimal.to_f.to_s
|
353
|
+
end
|
354
|
+
|
341
355
|
def find_binary_file_in_bundle(bundle_file)
|
342
356
|
if File.directory? bundle_file
|
343
357
|
bundle_file_noext = File.basename(bundle_file, File.extname(bundle_file))
|
data/lib/slather/version.rb
CHANGED
data/slather.gemspec
CHANGED
@@ -23,11 +23,11 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.add_development_dependency "rake", "~> 10.4"
|
24
24
|
spec.add_development_dependency "rspec", "~> 3.4"
|
25
25
|
spec.add_development_dependency "pry", "~> 0.9"
|
26
|
-
spec.add_development_dependency "cocoapods", "
|
26
|
+
spec.add_development_dependency "cocoapods", "~> 1.0"
|
27
27
|
spec.add_development_dependency "json_spec", "~> 1.1.4"
|
28
28
|
spec.add_development_dependency "equivalent-xml", "~> 0.5.1"
|
29
29
|
|
30
30
|
spec.add_dependency "clamp", "~> 0.6"
|
31
|
-
spec.add_dependency "xcodeproj", "
|
31
|
+
spec.add_dependency "xcodeproj", "~> 1.1"
|
32
32
|
spec.add_dependency "nokogiri", "~> 1.6.3"
|
33
33
|
end
|
@@ -11,7 +11,7 @@ describe Slather::CoverageFile do
|
|
11
11
|
end
|
12
12
|
|
13
13
|
let(:coverage_file) do
|
14
|
-
fixtures_project.
|
14
|
+
fixtures_project.coverage_files.detect { |cf| cf.source_file_pathname.basename.to_s == "fixtures.m" }
|
15
15
|
end
|
16
16
|
|
17
17
|
describe "#initialize" do
|
@@ -42,7 +42,7 @@ describe Slather::CoverageFile do
|
|
42
42
|
["cpp", "mm", "m"].each do |file_ext|
|
43
43
|
it "should work for #{file_ext} files" do
|
44
44
|
file_name = "fixtures_#{file_ext}.#{file_ext}"
|
45
|
-
coverage_file = fixtures_project.
|
45
|
+
coverage_file = fixtures_project.coverage_files.detect { |cf| cf.source_file_pathname.basename.to_s == file_name }
|
46
46
|
expect(coverage_file.source_file_pathname).to eq(fixtures_project["fixtures/#{file_name}"].real_path)
|
47
47
|
end
|
48
48
|
end
|
@@ -124,7 +124,7 @@ OBJC
|
|
124
124
|
}
|
125
125
|
|
126
126
|
let(:line_coverage_file) do
|
127
|
-
fixtures_project.
|
127
|
+
fixtures_project.coverage_files.detect { |cf| cf.source_file_pathname.basename.to_s == "fixtures.m" }
|
128
128
|
end
|
129
129
|
|
130
130
|
describe "#coverage_for_line" do
|
@@ -166,7 +166,7 @@ OBJC
|
|
166
166
|
describe "branch coverage" do
|
167
167
|
|
168
168
|
let(:branch_coverage_file) do
|
169
|
-
fixtures_project.
|
169
|
+
fixtures_project.coverage_files.detect { |cf| cf.source_file_pathname.basename.to_s == "Branches.m" }
|
170
170
|
end
|
171
171
|
|
172
172
|
describe "branch_coverage_data" do
|
@@ -281,7 +281,7 @@ OBJC
|
|
281
281
|
describe "empty coverage data" do
|
282
282
|
|
283
283
|
let(:empty_file) do
|
284
|
-
fixtures_project.
|
284
|
+
fixtures_project.coverage_files.detect { |cf| cf.source_file_pathname.basename.to_s == "Empty.m" }
|
285
285
|
end
|
286
286
|
|
287
287
|
describe "gcov_data" do
|
@@ -34,7 +34,7 @@ describe Slather::CoverageService::Coveralls do
|
|
34
34
|
it "should return valid json for coveralls coverage gcov data" do
|
35
35
|
allow(fixtures_project).to receive(:travis_job_id).and_return("9182")
|
36
36
|
expect(fixtures_project.send(:coveralls_coverage_data)).to be_json_eql("{\"service_job_id\":\"9182\",\"service_name\":\"travis-ci\"}").excluding("source_files")
|
37
|
-
expect(fixtures_project.send(:coveralls_coverage_data)).to be_json_eql(fixtures_project.
|
37
|
+
expect(fixtures_project.send(:coveralls_coverage_data)).to be_json_eql(fixtures_project.coverage_files.map(&:as_json).to_json).at_path("source_files")
|
38
38
|
end
|
39
39
|
|
40
40
|
it "should raise an error if there is no TRAVIS_JOB_ID" do
|
@@ -50,7 +50,7 @@ describe Slather::CoverageService::Coveralls do
|
|
50
50
|
allow(fixtures_project).to receive(:travis_job_id).and_return("9182")
|
51
51
|
allow(fixtures_project).to receive(:coverage_access_token).and_return("abc123")
|
52
52
|
expect(fixtures_project.send(:coveralls_coverage_data)).to be_json_eql("{\"service_job_id\":\"9182\",\"service_name\":\"travis-pro\",\"repo_token\":\"abc123\"}").excluding("source_files")
|
53
|
-
expect(fixtures_project.send(:coveralls_coverage_data)).to be_json_eql(fixtures_project.
|
53
|
+
expect(fixtures_project.send(:coveralls_coverage_data)).to be_json_eql(fixtures_project.coverage_files.map(&:as_json).to_json).at_path("source_files")
|
54
54
|
end
|
55
55
|
|
56
56
|
it "should raise an error if there is no TRAVIS_JOB_ID" do
|
@@ -69,7 +69,7 @@ describe Slather::CoverageService::Coveralls do
|
|
69
69
|
allow(fixtures_project).to receive(:circleci_build_url).and_return("https://circleci.com/gh/Bruce/Wayne/1")
|
70
70
|
allow(fixtures_project).to receive(:circleci_git_info).and_return({ :head => { :id => "ababa123", :author_name => "bwayne", :message => "hello" }, :branch => "master" })
|
71
71
|
expect(fixtures_project.send(:coveralls_coverage_data)).to be_json_eql("{\"service_job_id\":\"9182\",\"service_name\":\"circleci\",\"repo_token\":\"abc123\",\"service_pull_request\":\"1\",\"service_build_url\":\"https://circleci.com/gh/Bruce/Wayne/1\",\"git\":{\"head\":{\"id\":\"ababa123\",\"author_name\":\"bwayne\",\"message\":\"hello\"},\"branch\":\"master\"}}").excluding("source_files")
|
72
|
-
expect(fixtures_project.send(:coveralls_coverage_data)).to be_json_eql(fixtures_project.
|
72
|
+
expect(fixtures_project.send(:coveralls_coverage_data)).to be_json_eql(fixtures_project.coverage_files.map(&:as_json).to_json).at_path("source_files")
|
73
73
|
end
|
74
74
|
|
75
75
|
it "should raise an error if there is no CIRCLE_BUILD_NUM" do
|
@@ -87,7 +87,7 @@ describe Slather::CoverageService::Coveralls do
|
|
87
87
|
allow(fixtures_project).to receive(:jenkins_git_info).and_return({head: {id: "master", author_name: "author", message: "pull title" }, branch: "branch"})
|
88
88
|
allow(fixtures_project).to receive(:jenkins_branch_name).and_return('master')
|
89
89
|
expect(fixtures_project.send(:coveralls_coverage_data)).to be_json_eql("{\"service_job_id\":\"9182\",\"service_name\":\"jenkins\",\"repo_token\":\"abc123\",\"git\":{\"head\":{\"id\":\"master\",\"author_name\":\"author\",\"message\":\"pull title\"},\"branch\":\"branch\"}}").excluding("source_files")
|
90
|
-
expect(fixtures_project.send(:coveralls_coverage_data)).to be_json_eql(fixtures_project.
|
90
|
+
expect(fixtures_project.send(:coveralls_coverage_data)).to be_json_eql(fixtures_project.coverage_files.map(&:as_json).to_json).at_path("source_files")
|
91
91
|
end
|
92
92
|
|
93
93
|
it "should raise an error if there is no BUILD_ID" do
|
@@ -156,7 +156,7 @@ describe Slather::CoverageService::Coveralls do
|
|
156
156
|
it "should return valid json for coveralls coverage profdata data" do
|
157
157
|
allow(fixtures_project).to receive(:travis_job_id).and_return("9182")
|
158
158
|
expect(fixtures_project.send(:coveralls_coverage_data)).to be_json_eql("{\"service_job_id\":\"9182\",\"service_name\":\"travis-ci\"}").excluding("source_files")
|
159
|
-
expect(fixtures_project.send(:coveralls_coverage_data)).to be_json_eql(fixtures_project.
|
159
|
+
expect(fixtures_project.send(:coveralls_coverage_data)).to be_json_eql(fixtures_project.coverage_files.map(&:as_json).to_json).at_path("source_files")
|
160
160
|
end
|
161
161
|
end
|
162
162
|
end
|
@@ -26,6 +26,10 @@ describe Slather::CoverageService::HtmlOutput do
|
|
26
26
|
it "should return CoverageFile" do
|
27
27
|
expect(fixtures_project.send(:coverage_file_class)).to eq(Slather::ProfdataCoverageFile)
|
28
28
|
end
|
29
|
+
|
30
|
+
it "should allow accessing docs via attribute" do
|
31
|
+
expect(fixtures_project.docs).to eq(nil)
|
32
|
+
end
|
29
33
|
end
|
30
34
|
|
31
35
|
describe '#post' do
|
@@ -53,14 +53,14 @@ describe Slather::Project do
|
|
53
53
|
it "should return coverage file objects of type coverage_file_class for unignored project files" do
|
54
54
|
fixtures_project.ignore_list = ["*fixturesTests*"]
|
55
55
|
allow(fixtures_project).to receive(:dedupe) { |coverage_files| coverage_files }
|
56
|
-
coverage_files = fixtures_project.
|
56
|
+
coverage_files = fixtures_project.coverage_files
|
57
57
|
coverage_files.each { |cf| expect(cf.kind_of?(SpecCoverageFile)).to be_truthy }
|
58
58
|
expect(coverage_files.map { |cf| cf.source_file_pathname.basename.to_s }).to eq(["fixtures.m", "peekaview.m"])
|
59
59
|
end
|
60
60
|
|
61
61
|
it "should raise an exception if no unignored project coverage file files were found" do
|
62
62
|
fixtures_project.ignore_list = ["*fixturesTests*", "*fixtures*"]
|
63
|
-
expect {fixtures_project.
|
63
|
+
expect {fixtures_project.coverage_files}.to raise_error(StandardError)
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
@@ -503,4 +503,20 @@ describe Slather::Project do
|
|
503
503
|
end
|
504
504
|
end
|
505
505
|
|
506
|
+
def decimal_f *args
|
507
|
+
fixtures_project.decimal_f *args
|
508
|
+
end
|
509
|
+
|
510
|
+
describe '#decimal_f' do
|
511
|
+
it 'should preserve length 2 decimals for backwards compatibility' do
|
512
|
+
expect(decimal_f('100.00')).to eq('100.00')
|
513
|
+
expect(decimal_f('50.00')).to eq('50.00')
|
514
|
+
end
|
515
|
+
|
516
|
+
it 'should convert length >= 3 decimals to floats' do
|
517
|
+
fixtures_project.decimals = 3
|
518
|
+
expect(decimal_f('100.000')).to eq('100.0')
|
519
|
+
expect(decimal_f('50.00000')).to eq('50.0')
|
520
|
+
end
|
521
|
+
end
|
506
522
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slather
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Larsen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -98,22 +98,16 @@ dependencies:
|
|
98
98
|
name: cocoapods
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: 0.39.0
|
104
|
-
- - <
|
101
|
+
- - ~>
|
105
102
|
- !ruby/object:Gem::Version
|
106
|
-
version: 1.
|
103
|
+
version: '1.0'
|
107
104
|
type: :development
|
108
105
|
prerelease: false
|
109
106
|
version_requirements: !ruby/object:Gem::Requirement
|
110
107
|
requirements:
|
111
|
-
- -
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
version: 0.39.0
|
114
|
-
- - <
|
108
|
+
- - ~>
|
115
109
|
- !ruby/object:Gem::Version
|
116
|
-
version: 1.
|
110
|
+
version: '1.0'
|
117
111
|
- !ruby/object:Gem::Dependency
|
118
112
|
name: json_spec
|
119
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -160,22 +154,16 @@ dependencies:
|
|
160
154
|
name: xcodeproj
|
161
155
|
requirement: !ruby/object:Gem::Requirement
|
162
156
|
requirements:
|
163
|
-
- -
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
version: 0.28.2
|
166
|
-
- - <
|
157
|
+
- - ~>
|
167
158
|
- !ruby/object:Gem::Version
|
168
|
-
version: 1.1
|
159
|
+
version: '1.1'
|
169
160
|
type: :runtime
|
170
161
|
prerelease: false
|
171
162
|
version_requirements: !ruby/object:Gem::Requirement
|
172
163
|
requirements:
|
173
|
-
- -
|
174
|
-
- !ruby/object:Gem::Version
|
175
|
-
version: 0.28.2
|
176
|
-
- - <
|
164
|
+
- - ~>
|
177
165
|
- !ruby/object:Gem::Version
|
178
|
-
version: 1.1
|
166
|
+
version: '1.1'
|
179
167
|
- !ruby/object:Gem::Dependency
|
180
168
|
name: nokogiri
|
181
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -216,6 +204,7 @@ files:
|
|
216
204
|
- lib/slather.rb
|
217
205
|
- lib/slather/command/coverage_command.rb
|
218
206
|
- lib/slather/command/setup_command.rb
|
207
|
+
- lib/slather/command/version_command.rb
|
219
208
|
- lib/slather/coverage_file.rb
|
220
209
|
- lib/slather/coverage_info.rb
|
221
210
|
- lib/slather/coverage_service/cobertura_xml_output.rb
|