circleci-coverage_reporter 0.4.0 → 0.5.0

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: f7d215064f144f89d7c7cb0eaf5fc46f6a90c591
4
- data.tar.gz: dffd6d1a3c59adff8223915cb69c2075c90c33be
3
+ metadata.gz: 5b6110a90fbfd7d2fc4c619c19e3fde834e00f47
4
+ data.tar.gz: a6a18c2bc9e49123deab1ab7b4fada4716005179
5
5
  SHA512:
6
- metadata.gz: a98704328e56f06af1e9261770406151aaf7bc87ffa86d3ddc0fd4aa310f9c7b3651e1b1b73767c7252244f7bfbc395fdb762f48d55fcce41580f6b3aed0711f
7
- data.tar.gz: 238d8434cb7748191201f59da63f20baf77c88bb6b5145c7ad5987b0f40572833eb14d122e164583874e0d4db9507d3e29111b239db9d1a69f25b53c646db722
6
+ metadata.gz: bd8c11e4303da250ff42dc38f5fa7ed39d4dda60316c2b71d79c385c7b223d8af8ced3afbde6b1f9f6d16c8f67eb3be868b7c1e125a9ed3ce5504e343dc95245
7
+ data.tar.gz: 9cd3f642aa61f91e7295769c16bea3af2f8809cfedd5204cf5a671c94055aaa60ff3c1e31a9d1feda998454d7a522de91e30cf7b2767521c4a9856eaf38d6a33
data/.config.reek ADDED
@@ -0,0 +1,23 @@
1
+ ---
2
+ Attribute:
3
+ enabled: false
4
+ DuplicateMethodCall:
5
+ max_calls: 2
6
+ FeatureEnvy:
7
+ enabled: false
8
+ IrresponsibleModule:
9
+ enabled: false
10
+ RepeatedConditional:
11
+ exclude:
12
+ - "CircleCI::CoverageReporter::Client"
13
+ TooManyStatements:
14
+ exclude:
15
+ - "CircleCI::CoverageReporter::Sandbox#self.sandboxed"
16
+ UnusedParameters:
17
+ exclude:
18
+ - !ruby/regexp /Abstract/
19
+ - "CircleCI::CoverageReporter::ReportsRenderer#render"
20
+ UtilityFunction:
21
+ enabled: false
22
+
23
+ # vim:set ft=yaml:
data/.gitignore CHANGED
@@ -8,3 +8,4 @@
8
8
  /spec/examples.txt
9
9
  /spec/reports/
10
10
  /tmp/
11
+ /rubycritic/
data/CHANGELOG.md CHANGED
@@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.5.0] - 2017-05-18
10
+ ### Added
11
+ - Add Link reporter
12
+
9
13
  ## [0.4.0] - 2017-03-18
10
14
  ### Added
11
15
  - Support [RubyCritic](https://github.com/whitesmith/rubycritic) score
@@ -56,7 +60,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
56
60
  ### Added
57
61
  - Initial release
58
62
 
59
- [Unreleased]: https://github.com/increments/circleci-coverage_reporter/compare/v0.4.0...HEAD
63
+ [Unreleased]: https://github.com/increments/circleci-coverage_reporter/compare/v0.5.0...HEAD
64
+ [0.5.0]: https://github.com/increments/circleci-coverage_reporter/compare/v0.4.0...v0.5.0
60
65
  [0.4.0]: https://github.com/increments/circleci-coverage_reporter/compare/v0.3.1...v0.4.0
61
66
  [0.3.1]: https://github.com/increments/circleci-coverage_reporter/compare/v0.3.0...v0.3.1
62
67
  [0.3.0]: https://github.com/increments/circleci-coverage_reporter/compare/v0.2.0...v0.3.0
data/Gemfile CHANGED
@@ -7,6 +7,7 @@ group :development, :test do
7
7
  gem 'rspec', '~> 3.5'
8
8
  gem 'rspec_junit_formatter', '~> 0.2', require: false
9
9
  gem 'rubocop', '~> 0.42'
10
+ gem 'rubycritic', '~> 3.1', require: false
10
11
  gem 'simplecov', '~> 0.13'
11
12
  gem 'yard', '~> 0.9'
12
13
  end
data/Rakefile CHANGED
@@ -3,6 +3,7 @@ require 'rspec/core/rake_task'
3
3
  require 'rubocop/rake_task'
4
4
  require 'yard'
5
5
  require 'circleci/coverage_reporter/rake_task'
6
+ require 'rubycritic/rake_task'
6
7
 
7
8
  RSpec::Core::RakeTask.new do |task|
8
9
  task.verbose = false
@@ -12,4 +13,15 @@ RuboCop::RakeTask.new
12
13
 
13
14
  YARD::Rake::YardocTask.new
14
15
 
15
- task default: [:spec, :rubocop]
16
+ CircleCI::CoverageReporter.configure do |config|
17
+ config.reporters << CircleCI::CoverageReporter::Link::Reporter.new('doc', 'index.html', name: 'YARD')
18
+ end
19
+
20
+ desc 'Run RubyCritic'
21
+ task :rubycritic do
22
+ base_options = "-p #{ENV['CIRCLE_ARTIFACTS'] || '.'}/rubycritic --mode-ci --no-browser"
23
+ sh "bundle exec rubycritic #{base_options} -f html lib"
24
+ sh "bundle exec rubycritic #{base_options} -f json lib" if ENV['CIRCLECI']
25
+ end
26
+
27
+ task default: %i[spec rubocop]
data/circle.yml CHANGED
@@ -6,4 +6,6 @@ test:
6
6
  - bundle exec rspec --format progress --require rspec_junit_formatter --format RspecJunitFormatter -o $CIRCLE_TEST_REPORTS/rspec/junit.xml
7
7
  - bundle exec rubocop
8
8
  post:
9
+ - bundle exec rake rubycritic
10
+ - bundle exec yard doc -o $CIRCLE_ARTIFACTS/doc
9
11
  - bundle exec rake circleci:report_coverage
@@ -1,4 +1,5 @@
1
1
  # coding: utf-8
2
+
2
3
  lib = File.expand_path('../lib', __FILE__)
3
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
5
  require 'circleci/coverage_reporter/version'
@@ -3,6 +3,11 @@ require_relative 'coverage_reporter/configuration'
3
3
  require_relative 'coverage_reporter/errors'
4
4
  require_relative 'coverage_reporter/runner'
5
5
 
6
+ require_relative 'coverage_reporter/flow/reporter'
7
+ require_relative 'coverage_reporter/link/reporter'
8
+ require_relative 'coverage_reporter/rubycritic/reporter'
9
+ require_relative 'coverage_reporter/simplecov/reporter'
10
+
6
11
  module CircleCI
7
12
  module CoverageReporter
8
13
  class << self
@@ -0,0 +1,24 @@
1
+ require_relative 'abstract_result'
2
+
3
+ module CircleCI
4
+ module CoverageReporter
5
+ class AbstractBuildResult < AbstractResult
6
+ # @param path [String]
7
+ # @param build [Build]
8
+ def initialize(path, build)
9
+ @path = path
10
+ @build = build
11
+ end
12
+
13
+ private
14
+
15
+ attr_reader :build, :path
16
+
17
+ # @param end_with [String]
18
+ # @return [Artifact]
19
+ def find_artifact(end_with)
20
+ build.artifacts.find { |artifact| artifact.end_with?("#{path}/#{end_with}") }
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,45 @@
1
+ require_relative 'abstract_result'
2
+
3
+ module CircleCI
4
+ module CoverageReporter
5
+ class AbstractCurrentResult < AbstractResult
6
+ # @param path [String] path to coverage directory
7
+ def initialize(path)
8
+ @path = path
9
+ end
10
+
11
+ # @note Implement {AbstractResult#url}
12
+ # @return [String]
13
+ def url
14
+ [
15
+ 'https://circle-artifacts.com/gh',
16
+ configuration.project,
17
+ configuration.current_build_number,
18
+ 'artifacts',
19
+ "0#{configuration.artifacts_dir}",
20
+ path,
21
+ html_file_name
22
+ ].compact.join('/')
23
+ end
24
+
25
+ private
26
+
27
+ attr_reader :path
28
+
29
+ # @return [String]
30
+ def html_file_name
31
+ raise NotImplementedError
32
+ end
33
+
34
+ # @return
35
+ def join(name)
36
+ File.join(configuration.artifacts_dir, path, name)
37
+ end
38
+
39
+ # @return [Configuration]
40
+ def configuration
41
+ CoverageReporter.configuration
42
+ end
43
+ end
44
+ end
45
+ end
@@ -5,14 +5,14 @@ module CircleCI
5
5
  # @abstract Subclass and override {#name}, {#create_build_result} and {#create_current_result}
6
6
  # to implement a custom Reporter class.
7
7
  class AbstractReporter
8
- # @param path [String] relative path from artifacts dir to coverage directory
8
+ # @param path [String, nil] relative path from artifacts dir to coverage directory
9
9
  def initialize(path = self.class::DEFAULT_PATH)
10
10
  @path = path
11
11
  end
12
12
 
13
13
  # @return [Boolean] whether it is active
14
14
  def active?
15
- File.directory?(File.join(configuration.artifacts_dir, path))
15
+ File.directory?(File.join(configuration.artifacts_dir, path || ''))
16
16
  end
17
17
 
18
18
  # @param base_build [Build, nil]
@@ -1,6 +1,6 @@
1
1
  module CircleCI
2
2
  module CoverageReporter
3
- # @abstract Subclass and override {#coverage} to implement a custom Result class.
3
+ # @abstract Subclass and override {#coverage} and {#url} to implement a custom Result class.
4
4
  class AbstractResult
5
5
  # @return [Float]
6
6
  def coverage
@@ -34,7 +34,7 @@ module CircleCI
34
34
  # @param branch [String, nil]
35
35
  # @return [Integer, nil]
36
36
  def build_number_by_revision(revision, branch: nil)
37
- build = recent_builds(branch).find { |b| b.match?(revision) }
37
+ build = recent_builds(branch).find { |recent_build| recent_build.match?(revision) }
38
38
  build ? build.build_number : nil
39
39
  end
40
40
 
@@ -43,7 +43,7 @@ module CircleCI
43
43
  # @return [Faraday::Response]
44
44
  def get(url, params = {})
45
45
  params['circle-token'] = configuration.circleci_token
46
- Faraday.get(url + '?' + params.map { |k, v| "#{k}=#{v}" }.join('&'))
46
+ Faraday.get(url + '?' + params.map { |key, value| "#{key}=#{value}" }.join('&'))
47
47
  end
48
48
 
49
49
  private
@@ -10,18 +10,18 @@ module CircleCI
10
10
  Flow::Reporter.new,
11
11
  RubyCritic::Reporter.new
12
12
  ].freeze
13
- DEFAULT_TEMPLATE = <<-'ERB'.freeze
14
- <%- reports.each do |report| -%>
15
- <%
16
- link = "[#{report.reporter.name}](#{report.current_result.url})"
17
- emoji = report.base_diff.nil? || report.base_diff.nan? || report.base_diff.round(2).zero? ? nil : report.base_diff.positive? ? ' :chart_with_upwards_trend:' : ' :chart_with_downwards_trend:'
18
- base_progress = report.base_diff ? "[master](#{report.base_result.url}): #{report.pretty_base_diff}" : nil
19
- branch_progress = report.branch_diff ? "[previous](#{report.previous_result.url}): #{report.pretty_branch_diff}" : nil
20
- progresses = [base_progress, branch_progress].compact
21
- progress = progresses.empty? ? nil : " (#{progresses.join(', ')})"
22
- -%>
23
- <%= link %>: <%= report.current_result.pretty_coverage %><%= emoji %><%= progress %>
24
- <%- end -%>
13
+ DEFAULT_TEMPLATE = <<~'ERB'.freeze
14
+ <%- reports.each do |report| -%>
15
+ <%
16
+ link = "[#{report.reporter.name}](#{report.current_result.url})"
17
+ emoji = report.base_diff.nil? || report.base_diff.nan? || report.base_diff.round(2).zero? ? nil : report.base_diff.positive? ? ' :chart_with_upwards_trend:' : ' :chart_with_downwards_trend:'
18
+ base_progress = report.base_diff ? "[master](#{report.base_result.url}): #{report.pretty_base_diff}" : nil
19
+ branch_progress = report.branch_diff ? "[previous](#{report.previous_result.url}): #{report.pretty_branch_diff}" : nil
20
+ progresses = [base_progress, branch_progress].compact
21
+ progress = progresses.empty? ? nil : " (#{progresses.join(', ')})"
22
+ -%>
23
+ <%= link %>: <%= report.current_result.pretty_coverage %><%= emoji %><%= progress %>
24
+ <%- end -%>
25
25
  ERB
26
26
  DEFAULT_TEMPLATE_TRIM_MODE = '-'.freeze
27
27
  DEFAULT_VCS_TYPE = 'github'.freeze
@@ -92,20 +92,20 @@ module CircleCI
92
92
 
93
93
  # @return [void]
94
94
  def dump # rubocop:disable AbcSize
95
- puts <<-EOF
96
- Configuration | Value
97
- ----------------------|----------------------------------------------------------------------------
98
- artifacts_dir | #{artifacts_dir.inspect}
99
- base_revision | #{base_revision.inspect}
100
- circleci_token | #{circleci_token[-4..-1].rjust(40, '*').inspect}
101
- current_build_number | #{current_build_number.inspect}
102
- current_revision | #{current_revision.inspect}
103
- previous_build_number | #{previous_build_number.inspect}
104
- reporters | #{reporters.inspect}
105
- repository_name | #{repository_name.inspect}
106
- user_name | #{user_name.inspect}
107
- vcs_token | #{vcs_token[-4..-1].rjust(40, '*').inspect}
108
- vcs_type | #{vcs_type.inspect}
95
+ puts <<~EOF
96
+ Configuration | Value
97
+ ----------------------|----------------------------------------------------------------------------
98
+ artifacts_dir | #{artifacts_dir.inspect}
99
+ base_revision | #{base_revision.inspect}
100
+ circleci_token | #{circleci_token[-4..-1].rjust(40, '*').inspect}
101
+ current_build_number | #{current_build_number.inspect}
102
+ current_revision | #{current_revision.inspect}
103
+ previous_build_number | #{previous_build_number.inspect}
104
+ reporters | #{reporters.inspect}
105
+ repository_name | #{repository_name.inspect}
106
+ user_name | #{user_name.inspect}
107
+ vcs_token | #{vcs_token[-4..-1].rjust(40, '*').inspect}
108
+ vcs_type | #{vcs_type.inspect}
109
109
  EOF
110
110
  end
111
111
  end
@@ -1,16 +1,9 @@
1
- require_relative '../abstract_result'
1
+ require_relative '../abstract_build_result'
2
2
 
3
3
  module CircleCI
4
4
  module CoverageReporter
5
5
  module Flow
6
- class BuildResult < AbstractResult
7
- # @param path [String]
8
- # @param build [Build]
9
- def initialize(path, build)
10
- @path = path
11
- @build = build
12
- end
13
-
6
+ class BuildResult < AbstractBuildResult
14
7
  # @note Implement {AbstractResult#coverage}
15
8
  # @return [Float]
16
9
  def coverage
@@ -24,16 +17,6 @@ module CircleCI
24
17
  index_html = find_artifact('index.html') or return '#'
25
18
  index_html.url
26
19
  end
27
-
28
- private
29
-
30
- attr_reader :build, :path
31
-
32
- # @param end_with [String]
33
- # @return [Artifact]
34
- def find_artifact(end_with)
35
- build.artifacts.find { |a| a.end_with?("#{path}/#{end_with}") }
36
- end
37
20
  end
38
21
  end
39
22
  end
@@ -1,46 +1,21 @@
1
- require_relative '../abstract_result'
1
+ require_relative '../abstract_current_result'
2
2
 
3
3
  module CircleCI
4
4
  module CoverageReporter
5
5
  module Flow
6
- class CurrentResult < AbstractResult
7
- # @param path [String] path to coverage directory
8
- def initialize(path)
9
- @path = path
10
- end
11
-
6
+ class CurrentResult < AbstractCurrentResult
12
7
  # @note Implement {AbstractResult#coverage}
13
8
  # @return [Float]
14
9
  def coverage
15
10
  JSON.parse(File.read(join('flow-coverage.json')))['percent'].to_f
16
11
  end
17
12
 
18
- # @note Implement {AbstractResult#url}
19
- # @return [String]
20
- def url
21
- [
22
- 'https://circle-artifacts.com/gh',
23
- configuration.project,
24
- configuration.current_build_number,
25
- 'artifacts',
26
- "0#{configuration.artifacts_dir}",
27
- path,
28
- 'index.html'
29
- ].join('/')
30
- end
31
-
32
13
  private
33
14
 
34
- attr_reader :path
35
-
36
- # @return
37
- def join(name)
38
- File.join(configuration.artifacts_dir, path, name)
39
- end
40
-
41
- # @return [Configuration]
42
- def configuration
43
- CoverageReporter.configuration
15
+ # @note Implementation for {AbstractCurrentResult#html_file_name}
16
+ # @return [String]
17
+ def html_file_name
18
+ 'index.html'
44
19
  end
45
20
  end
46
21
  end
@@ -0,0 +1,28 @@
1
+ module CircleCI
2
+ module CoverageReporter
3
+ module Link
4
+ class CurrentResult < AbstractCurrentResult
5
+ # @note Override
6
+ def initialize(path, html_file_name)
7
+ @html_file_name = html_file_name
8
+ super(path)
9
+ end
10
+
11
+ # @note Implement {AbstractResult#coverage}
12
+ # @return [Float]
13
+ def coverage
14
+ Float::NAN
15
+ end
16
+
17
+ # @note Override {AbstractResult#pretty_coverage}
18
+ def pretty_coverage
19
+ ''
20
+ end
21
+
22
+ private
23
+
24
+ attr_reader :html_file_name
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,35 @@
1
+ require_relative 'current_result'
2
+
3
+ module CircleCI
4
+ module CoverageReporter
5
+ module Link
6
+ class Reporter < AbstractReporter
7
+ attr_reader :name
8
+
9
+ # @param path [String, nil] relative path from artifacts dir to coverage directory
10
+ # @param file_name [String] file name
11
+ # @param name [String] reporter name
12
+ def initialize(path, file_name, name: nil)
13
+ @path = path
14
+ @file_name = file_name
15
+ @name = name || file_name
16
+ end
17
+
18
+ private
19
+
20
+ # @note Implement {AbstractReporter#create_build_result}
21
+ # @param _build [Build, nil]
22
+ # @return [nil]
23
+ def create_build_result(_build)
24
+ nil
25
+ end
26
+
27
+ # @note Implement {AbstractReporter#create_current_result}
28
+ # @return [CurrentResult]
29
+ def create_current_result
30
+ CurrentResult.new(path, @file_name)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -14,9 +14,9 @@ module CircleCI
14
14
  attr_reader :previous_result
15
15
 
16
16
  # @param reporter [AbstractReporter]
17
- # @param current [AbstractResult]
18
- # @param base [AbstractResult, nil]
19
- # @param previous [AbstractResult, nil]
17
+ # @param current [AbstractCurrentResult]
18
+ # @param base [AbstractBuildResult, nil]
19
+ # @param previous [AbstractBuildResult, nil]
20
20
  def initialize(reporter, current, base: nil, previous: nil)
21
21
  @reporter = reporter
22
22
  @current_result = current
@@ -1,16 +1,9 @@
1
- require_relative '../abstract_result'
1
+ require_relative '../abstract_build_result'
2
2
 
3
3
  module CircleCI
4
4
  module CoverageReporter
5
5
  module RubyCritic
6
- class BuildResult < AbstractResult
7
- # @param path [String]
8
- # @param build [Build]
9
- def initialize(path, build)
10
- @path = path
11
- @build = build
12
- end
13
-
6
+ class BuildResult < AbstractBuildResult
14
7
  # @note Implement {AbstractResult#coverage}
15
8
  # @return [Float]
16
9
  def coverage
@@ -24,16 +17,6 @@ module CircleCI
24
17
  index_html = find_artifact('overview.html') or return '#'
25
18
  index_html.url
26
19
  end
27
-
28
- private
29
-
30
- attr_reader :build, :path
31
-
32
- # @param end_with [String]
33
- # @return [Artifact]
34
- def find_artifact(end_with)
35
- build.artifacts.find { |a| a.end_with?("#{path}/#{end_with}") }
36
- end
37
20
  end
38
21
  end
39
22
  end
@@ -1,34 +1,15 @@
1
- require_relative '../abstract_result'
1
+ require_relative '../abstract_current_result'
2
2
 
3
3
  module CircleCI
4
4
  module CoverageReporter
5
5
  module RubyCritic
6
- class CurrentResult < AbstractResult
7
- # @param path [String] path to coverage directory
8
- def initialize(path)
9
- @path = path
10
- end
11
-
6
+ class CurrentResult < AbstractCurrentResult
12
7
  # @note Implement {AbstractResult#coverage}
13
8
  # @return [Float]
14
9
  def coverage
15
10
  JSON.parse(File.read(join('report.json')))['score'].to_f
16
11
  end
17
12
 
18
- # @note Implement {AbstractResult#url}
19
- # @return [String]
20
- def url
21
- [
22
- 'https://circle-artifacts.com/gh',
23
- configuration.project,
24
- configuration.current_build_number,
25
- 'artifacts',
26
- "0#{configuration.artifacts_dir}",
27
- path,
28
- 'overview.html'
29
- ].join('/')
30
- end
31
-
32
13
  # @note Override {AbstractResult#pretty_coverage}
33
14
  # @return [String]
34
15
  def pretty_coverage
@@ -37,16 +18,10 @@ module CircleCI
37
18
 
38
19
  private
39
20
 
40
- attr_reader :path
41
-
42
- # @return
43
- def join(name)
44
- File.join(configuration.artifacts_dir, path, name)
45
- end
46
-
47
- # @return [Configuration]
48
- def configuration
49
- CoverageReporter.configuration
21
+ # @note Implementation for {AbstractCurrentResult#html_file_name}
22
+ # @return [String]
23
+ def html_file_name
24
+ 'overview.html'
50
25
  end
51
26
  end
52
27
  end
@@ -12,12 +12,12 @@ module CircleCI
12
12
 
13
13
  # @return [void]
14
14
  def dump
15
- puts <<-EOF
16
- Runner | Value
17
- ------------------|-----------------------------------------------------------------------------------
18
- base_build | #{base_build.inspect}
19
- base_build_number | #{base_build_number.inspect}
20
- previous_build | #{previous_build.inspect}
15
+ puts <<~EOF
16
+ Runner | Value
17
+ ------------------|-----------------------------------------------------------------------------------
18
+ base_build | #{base_build.inspect}
19
+ base_build_number | #{base_build_number.inspect}
20
+ previous_build | #{previous_build.inspect}
21
21
  EOF
22
22
  end
23
23
 
@@ -1,16 +1,9 @@
1
- require_relative '../abstract_result'
1
+ require_relative '../abstract_build_result'
2
2
 
3
3
  module CircleCI
4
4
  module CoverageReporter
5
5
  module SimpleCov
6
- class BuildResult < AbstractResult
7
- # @param path [String]
8
- # @param build [Build]
9
- def initialize(path, build)
10
- @path = path
11
- @build = build
12
- end
13
-
6
+ class BuildResult < AbstractBuildResult
14
7
  # @note Implement {AbstractResult#coverage}
15
8
  # @return [Float]
16
9
  def coverage
@@ -24,16 +17,6 @@ module CircleCI
24
17
  index_html = find_artifact('index.html') or return '#'
25
18
  index_html.url
26
19
  end
27
-
28
- private
29
-
30
- attr_reader :build, :path
31
-
32
- # @param end_with [String]
33
- # @return [Artifact]
34
- def find_artifact(end_with)
35
- build.artifacts.find { |a| a.end_with?("#{path}/#{end_with}") }
36
- end
37
20
  end
38
21
  end
39
22
  end
@@ -1,46 +1,21 @@
1
- require_relative '../abstract_result'
1
+ require_relative '../abstract_current_result'
2
2
 
3
3
  module CircleCI
4
4
  module CoverageReporter
5
5
  module SimpleCov
6
- class CurrentResult < AbstractResult
7
- # @param path [String] path to coverage directory
8
- def initialize(path)
9
- @path = path
10
- end
11
-
6
+ class CurrentResult < AbstractCurrentResult
12
7
  # @note Implement {AbstractResult#coverage}
13
8
  # @return [Float]
14
9
  def coverage
15
10
  JSON.parse(File.read(join('.last_run.json')))['result']['covered_percent'].to_f
16
11
  end
17
12
 
18
- # @note Implement {AbstractResult#url}
19
- # @return [String]
20
- def url
21
- [
22
- 'https://circle-artifacts.com/gh',
23
- configuration.project,
24
- configuration.current_build_number,
25
- 'artifacts',
26
- "0#{configuration.artifacts_dir}",
27
- path,
28
- 'index.html'
29
- ].join('/')
30
- end
31
-
32
13
  private
33
14
 
34
- attr_reader :path
35
-
36
- # @return
37
- def join(name)
38
- File.join(configuration.artifacts_dir, path, name)
39
- end
40
-
41
- # @return [Configuration]
42
- def configuration
43
- CoverageReporter.configuration
15
+ # @note Implementation for {AbstractCurrentResult#html_file_name}
16
+ # @return [String]
17
+ def html_file_name
18
+ 'index.html'
44
19
  end
45
20
  end
46
21
  end
@@ -2,7 +2,7 @@ module CircleCI
2
2
  module CoverageReporter
3
3
  module Version
4
4
  MAJOR = 0
5
- MINOR = 4
5
+ MINOR = 5
6
6
  PATCH = 0
7
7
 
8
8
  def self.to_s
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: circleci-coverage_reporter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuku Takahashi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-18 00:00:00.000000000 Z
11
+ date: 2017-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -45,6 +45,7 @@ executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
+ - ".config.reek"
48
49
  - ".gitignore"
49
50
  - ".rspec"
50
51
  - ".rubocop.yml"
@@ -58,6 +59,8 @@ files:
58
59
  - circle.yml
59
60
  - circleci-coverage_reporter.gemspec
60
61
  - lib/circleci/coverage_reporter.rb
62
+ - lib/circleci/coverage_reporter/abstract_build_result.rb
63
+ - lib/circleci/coverage_reporter/abstract_current_result.rb
61
64
  - lib/circleci/coverage_reporter/abstract_reporter.rb
62
65
  - lib/circleci/coverage_reporter/abstract_result.rb
63
66
  - lib/circleci/coverage_reporter/abstract_vcs_client.rb
@@ -70,6 +73,8 @@ files:
70
73
  - lib/circleci/coverage_reporter/flow/current_result.rb
71
74
  - lib/circleci/coverage_reporter/flow/reporter.rb
72
75
  - lib/circleci/coverage_reporter/github_client.rb
76
+ - lib/circleci/coverage_reporter/link/current_result.rb
77
+ - lib/circleci/coverage_reporter/link/reporter.rb
73
78
  - lib/circleci/coverage_reporter/rake_task.rb
74
79
  - lib/circleci/coverage_reporter/report.rb
75
80
  - lib/circleci/coverage_reporter/reports_renderer.rb
@@ -102,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
102
107
  version: '0'
103
108
  requirements: []
104
109
  rubyforge_project:
105
- rubygems_version: 2.5.1
110
+ rubygems_version: 2.6.11
106
111
  signing_key:
107
112
  specification_version: 4
108
113
  summary: Report test coverage to your GitHub repository