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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: eeb8cebaec1537b632d62c19245da2c00af5730e
4
- data.tar.gz: 0b7ca2c1e79d283e9899b969012f943d611ed0be
3
+ metadata.gz: 8096ea189a9cebaad5a72f45dce58fd1f9f6b284
4
+ data.tar.gz: 15d24647aeba911b4e194dd150ea9700335fe21c
5
5
  SHA512:
6
- metadata.gz: 81c1fd17cba7d152635a93aaf546bd1cfa9fc1040dd92da8b690486a913178e254ce28ae753200d2bc171cad0d586f2304a4b21d6683e364cc321bb77c88f0e0
7
- data.tar.gz: 3f0a80e2845b883f7ed3867a68f5717da9d85ea62bfa07442195017b735e21e667a244cf90924cb99a43193d8256d2293f48bc6f5aa9cef6570d856537c3befd
6
+ metadata.gz: 311d63ca7b84e89bbdda3f1f0a0d7063df7c2e890ca96bb9a81d3aead8263ee14a18b0264d506107600d0985cf4fa3519527d2808ea3a169b21b5d9ba4c739fc
7
+ data.tar.gz: e138521b5d249354893eb05c24a88edf245cf649d1c0338aa3e757721bd9e7127132ae5b84d456e1562b58ec7b32b1f574149763c74eb4e7b14d8d10e5cb7365
@@ -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
 
@@ -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 "setup", "Configures a .xcodeproj for test coverage generation", SetupCommand
12
- subcommand "coverage", "Computes coverage for the supplied project", CoverageCommand
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
@@ -0,0 +1,6 @@
1
+ class VersionCommand < Clamp::Command
2
+
3
+ def execute
4
+ puts "slather #{Slather::VERSION}"
5
+ end
6
+ 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 '%.2f%%' % percentage, :class => class_for_coverage_percentage(percentage), :id => "total_coverage"
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 '%.2f' % percentage, :class => "percentage #{class_for_coverage_percentage(percentage)} data_percentage" }
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("#{'%.2f' % percentage}%", :class => class_for_coverage_percentage(percentage)) unless is_file_empty
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 = '%.2f' % [coverage_file.percentage_lines_tested]
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 = '%.2f' % [(total_project_lines_tested / total_project_lines.to_f) * 100.0]
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
 
@@ -27,8 +27,8 @@ module Xcodeproj
27
27
 
28
28
  # Patch xcschemes too
29
29
  if format == :clang
30
- if Gem::Requirement.new('~> 0.27') =~ Gem::Version.new(Xcodeproj::VERSION)
31
- # @todo This will require to bump the xcodeproj dependency to ~> 0.27
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))
@@ -1,3 +1,3 @@
1
1
  module Slather
2
- VERSION = "2.2.0"
2
+ VERSION = '2.2.1' unless defined?(Slather::VERSION)
3
3
  end
@@ -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", ">= 0.39.0", "< 1.1.0"
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", ">= 0.28.2", "< 1.1.0"
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.send(:coverage_files).detect { |cf| cf.source_file_pathname.basename.to_s == "fixtures.m" }
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.send(:coverage_files).detect { |cf| cf.source_file_pathname.basename.to_s == file_name }
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.send(:coverage_files).detect { |cf| cf.source_file_pathname.basename.to_s == "fixtures.m" }
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.send(:coverage_files).detect { |cf| cf.source_file_pathname.basename.to_s == "Branches.m" }
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.send(:coverage_files).detect { |cf| cf.source_file_pathname.basename.to_s == "Empty.m" }
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.send(:coverage_files).map(&:as_json).to_json).at_path("source_files")
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.send(:coverage_files).map(&:as_json).to_json).at_path("source_files")
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.send(:coverage_files).map(&:as_json).to_json).at_path("source_files")
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.send(:coverage_files).map(&:as_json).to_json).at_path("source_files")
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.send(:coverage_files).map(&:as_json).to_json).at_path("source_files")
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.send(:coverage_files)
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.send(:coverage_files)}.to raise_error(StandardError)
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
@@ -1,7 +1,7 @@
1
1
  if ENV['SIMPLECOV']
2
2
  require 'simplecov'
3
3
  SimpleCov.start
4
- else
4
+ elsif ENV['TRAVIS']
5
5
  require 'coveralls'
6
6
  Coveralls.wear!
7
7
  end
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.0
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-05-08 00:00:00.000000000 Z
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.1.0
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.1.0
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.0
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.0
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