simplecov_covview 0.1.0 → 0.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
  SHA256:
3
- metadata.gz: 9cfefe5ecc6d9189158b4e206bd3d085f78a644b7b52a4af732bd20ef83823d6
4
- data.tar.gz: de86a0a0d01bec7314875c43ff787006d3d8ac729bcd6e2ae30e61ce51060d2d
3
+ metadata.gz: 28f6fa6f8b0245da23b7492dc9115148d12d576d022f7b8468e64a689cb48bda
4
+ data.tar.gz: 3227b8d839c3f2f2146d4f93a1624193e1004b5a4a1c7c004dc0e48a1bf320d4
5
5
  SHA512:
6
- metadata.gz: b0748769c3ac19d2e7845d6b5517df5419483b162058f035f553ba877732430b6e76f86654acc8dd13c8bdb40c863a726ded84079f4e8083ad81eeac9cb1a3d5
7
- data.tar.gz: 16585701e76e9b0a27d62c5608dbcb83a1daf16a8ed41acb1e998f137fa88549ec94ba6fbca920d688a1fb7a162855070f0238b9f813a94efd56f031c4207293
6
+ metadata.gz: a53bcfe6d9e216dc266189968e823c92f2057cf42cf63913fed9a7f8af528baac3461c81653c00ae8c624cd4266f307af02d0e8cd056b6b060cef4df484b121b
7
+ data.tar.gz: 65662a84309ea96dd50d4e2e3e775b377fa76b9e7de957cfb67179583048add12b0e6b53347e98c7cf54d7d412eef19c8af18346df713b5788d2e6b28cecdaa1
data/Gemfile CHANGED
@@ -1,11 +1,12 @@
1
- # frozen_string_literal: true
2
-
3
- source "https://rubygems.org"
4
-
5
- # Specify your gem's dependencies in simplecov_covview.gemspec
6
- gemspec
7
-
8
- gem "rake", "~> 13.0"
9
- gem "simplecov"
10
-
11
- gem "test-unit", "~> 3.0"
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in simplecov_covview.gemspec
6
+ gemspec
7
+
8
+ gem "rake", "~> 13.0"
9
+ gem "simplecov"
10
+ gem 'rainbow'
11
+
12
+ gem "test-unit", "~> 3.0"
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Gem Version](https://badge.fury.io/rb/simplecov_covview.svg)](https://badge.fury.io/rb/simplecov_covview)
2
+
1
3
  # Simplecov_covview
2
4
 
3
5
  simplecov_covview is a coverage viewer for SimpleCov.
@@ -0,0 +1,93 @@
1
+ module SimplecovCovview
2
+ require 'rainbow/refinement'
3
+
4
+ class CovView
5
+ class Srcfile
6
+ class Color
7
+ using Rainbow
8
+
9
+ # 8 colors colorscheme
10
+ COLOR_8 = {
11
+ covered: {
12
+ color: :white,
13
+ background: :green
14
+ },
15
+ missed: {
16
+ color: :white,
17
+ background: :red
18
+ },
19
+ }
20
+
21
+ # 256 colors colorscheme
22
+ COLOR_256 = {
23
+ covered: {
24
+ color: :black,
25
+ background: :lightgreen
26
+ },
27
+ missed: {
28
+ color: :black,
29
+ background: :lightpink
30
+ },
31
+ }
32
+
33
+ # Colorize the source file detail view
34
+ #
35
+ # @param [Array] status @src_files_line
36
+ # @param [Array] contents @src_files_line
37
+ def initialize(status, contents)
38
+ @status = status
39
+ @contents = contents
40
+ @colorscheme = {}
41
+ set_colorscheme
42
+ end
43
+
44
+
45
+ def use_8colors?
46
+ SimpleCov::Formatter::CovView.use_8color ||= false
47
+ end
48
+
49
+ def use_256colors?
50
+ SimpleCov::Formatter::CovView.use_256color ||= false
51
+ end
52
+
53
+
54
+ def set_colorscheme
55
+ @colorscheme = COLOR_8 if use_8colors?
56
+ @colorscheme = COLOR_256 if use_256colors?
57
+ end
58
+
59
+ def covered_color
60
+ @colorscheme[:covered][:color]
61
+ end
62
+
63
+ def covered_background
64
+ @colorscheme[:covered][:background]
65
+ end
66
+
67
+ def missed_color
68
+ @colorscheme[:missed][:color]
69
+ end
70
+
71
+ def missed_background
72
+ @colorscheme[:missed][:background]
73
+ end
74
+
75
+ def colorize
76
+ return @contents unless (use_8colors? || use_256colors?)
77
+
78
+ case @status
79
+ when "covered"
80
+ out_str = Rainbow(@contents).color(covered_color).bg(covered_background)
81
+ when "missed"
82
+ out_str = Rainbow(@contents).color(missed_color).bg(missed_background)
83
+ else
84
+ out_str = @contents
85
+ end
86
+
87
+ out_str
88
+ end
89
+
90
+ end
91
+ end
92
+ end
93
+ end
@@ -34,7 +34,7 @@ module SimplecovCovview
34
34
 
35
35
  src_file[:contents].each do |line|
36
36
  row = SimplecovCovview::CovView::Srcfile::Line.new(line, src_file)
37
- puts row.contents
37
+ puts row.colorize_contents
38
38
  end
39
39
  end
40
40
  end
@@ -1,11 +1,11 @@
1
- # Create text for each line from @src_files_list.
2
- #
3
- # @param [Hash] line @src_files_list
4
- # @param [Hash] src_file @src_files_list
5
1
  module SimplecovCovview
6
2
  class CovView
7
3
  class Srcfile
8
4
  class Line
5
+ # Create text for each line from @src_files_list.
6
+ #
7
+ # @param [Hash] line @src_files_list
8
+ # @param [Hash] src_file @src_files_list
9
9
  def initialize(line, src_file)
10
10
  @line = line
11
11
  @src_file = src_file
@@ -40,9 +40,15 @@ module SimplecovCovview
40
40
  sprintf("%#{line_width}s: ", line_number),
41
41
  sprintf("[%7s] ", status),
42
42
  sprintf("[%#{cov_width}s ] ", cov_count),
43
- source_code,
43
+ source_code.chomp("\r\n"),
44
44
  ].join
45
45
  end
46
+
47
+ def colorize_contents
48
+ row = SimplecovCovview::CovView::Srcfile::Color.new(status, contents)
49
+ row.colorize
50
+ end
51
+
46
52
  end
47
53
  end
48
54
  end
@@ -1,10 +1,10 @@
1
- # The Resultfile class stores source file's information.
2
- #
3
- # @param [Hash] file SimpleCov::SourceFile
1
+
4
2
  module SimplecovCovview
5
3
  class CovView
6
4
  class Resultfile
7
-
5
+ # The Resultfile class stores source file's information.
6
+ #
7
+ # @param [Hash] file SimpleCov::SourceFile
8
8
  def initialize(file)
9
9
  @file = file
10
10
  end
@@ -1,9 +1,10 @@
1
- # Create coverage header from @src_files_list.
2
- #
3
- # @param [Hash] src_file @src_files_list
1
+
4
2
  module SimplecovCovview
5
3
  class CovView
6
4
  class Srcfile
5
+ # Create coverage header from @src_files_list.
6
+ #
7
+ # @param [Hash] src_file @src_files_list
7
8
  def initialize(src_file)
8
9
  @src_file = src_file
9
10
  end
@@ -1,5 +1,5 @@
1
- # frozen_string_literal: true
2
-
3
- module SimplecovCovview
4
- VERSION = "0.1.0"
5
- end
1
+ # frozen_string_literal: true
2
+
3
+ module SimplecovCovview
4
+ VERSION = "0.2.1"
5
+ end
@@ -1,18 +1,27 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "simplecov_covview/version"
4
- require_relative "simplecov_covview/formatter"
5
- require_relative "simplecov_covview/resultfile.rb"
6
- require_relative "simplecov_covview/srcfile.rb"
7
- require_relative "simplecov_covview/line.rb"
8
-
9
- module SimpleCov
10
- module Formatter
11
- class CovView
12
- def format(result)
13
- covview = SimplecovCovview::CovView.new(result)
14
- covview.formatter.render
15
- end
16
- end
17
- end
18
- end
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "simplecov_covview/version"
4
+ require_relative "simplecov_covview/formatter"
5
+ require_relative "simplecov_covview/resultfile.rb"
6
+ require_relative "simplecov_covview/srcfile.rb"
7
+ require_relative "simplecov_covview/line.rb"
8
+ require_relative "simplecov_covview/color.rb"
9
+
10
+ module SimpleCov
11
+ module Formatter
12
+ class CovView
13
+
14
+ class << self
15
+ attr_accessor :use_8color
16
+ attr_accessor :use_256color
17
+ end
18
+
19
+ SimpleCov::Formatter::CovView.use_8color = true
20
+
21
+ def format(result)
22
+ covview = SimplecovCovview::CovView.new(result)
23
+ covview.formatter.render
24
+ end
25
+ end
26
+ end
27
+ end
@@ -1,27 +1,29 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "lib/simplecov_covview/version"
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = "simplecov_covview"
7
- spec.version = SimplecovCovview::VERSION
8
- spec.authors = ["icm7216"]
9
- spec.email = ["icm7216d@gmail.com"]
10
-
11
- spec.summary = "Coverage viewer for simplecov."
12
- spec.description = "Coverage console output formatter for SimpleCov."
13
- spec.homepage = "https://github.com/icm7216/simplecov_covview"
14
- spec.license = "MIT"
15
- spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
16
-
17
- # Specify which files should be added to the gem when it is released.
18
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
19
- spec.files = Dir.chdir(File.expand_path(__dir__)) do
20
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
21
- end
22
- spec.bindir = "exe"
23
- spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
24
- spec.require_paths = ["lib"]
25
-
26
- spec.add_development_dependency "test-unit"
27
- end
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/simplecov_covview/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "simplecov_covview"
7
+ spec.version = SimplecovCovview::VERSION
8
+ spec.authors = ["icm7216"]
9
+ spec.email = ["icm7216d@gmail.com"]
10
+
11
+ spec.summary = "Coverage viewer for simplecov."
12
+ spec.description = "Coverage console output formatter for SimpleCov."
13
+ spec.homepage = "https://github.com/icm7216/simplecov_covview"
14
+ spec.license = "MIT"
15
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
16
+
17
+ # Specify which files should be added to the gem when it is released.
18
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
19
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
20
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
21
+ end
22
+ spec.bindir = "exe"
23
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
24
+ spec.require_paths = ["lib"]
25
+
26
+ spec.add_development_dependency "test-unit"
27
+ spec.add_development_dependency "simplecov"
28
+ spec.add_development_dependency "rainbow"
29
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simplecov_covview
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - icm7216
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-08-20 00:00:00.000000000 Z
11
+ date: 2021-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-unit
@@ -24,6 +24,34 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: simplecov
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rainbow
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
27
55
  description: Coverage console output formatter for SimpleCov.
28
56
  email:
29
57
  - icm7216d@gmail.com
@@ -39,6 +67,7 @@ files:
39
67
  - bin/console
40
68
  - bin/setup
41
69
  - lib/simplecov_covview.rb
70
+ - lib/simplecov_covview/color.rb
42
71
  - lib/simplecov_covview/formatter.rb
43
72
  - lib/simplecov_covview/line.rb
44
73
  - lib/simplecov_covview/resultfile.rb