simple_cov-formatter-terminal 1.4.0 → 1.6.0
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 +4 -4
- data/CHANGELOG.md +6 -0
- data/Gemfile.lock +5 -5
- data/README.md +15 -0
- data/lib/simple_cov/formatter/terminal/config.rb +0 -5
- data/lib/simple_cov/formatter/terminal/line_printer.rb +16 -11
- data/lib/simple_cov/formatter/terminal/result_printer.rb +0 -10
- data/lib/simple_cov/formatter/terminal/version.rb +1 -1
- metadata +3 -4
- data/lib/simple_cov/formatter/terminal/target_file_writer.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 57dcdb462f586d9dfa9b15f94f124083f8359158332e94046d3f1e8beed45e48
|
4
|
+
data.tar.gz: 31f4ee23689e5c40c71908383987ff1e5c5800ff26648cac58e047affbc58857
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e68fe09fda88e96459a438ff7442b3b5407b507cb3b9f90d11713adcf580793e6960236b409815654492d939448e6056ef5fa4185b76b90765334c5cfa7c49d
|
7
|
+
data.tar.gz: 681b536538dbbf5139622ee63849e23ac75b7581778c28decbe2e0ec3732d28f79b0640ba269f96396195f770cf51c343e88270bdf8fa7aa0071ba1d435e0fcb
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
## v1.6.0 (2024-07-30)
|
2
|
+
- Make terminal hyperlink pattern an ENV var (`SIMPLECOV_TERMINAL_HYPERLINK_PATTERN`) rather than a Ruby setting
|
3
|
+
|
4
|
+
## v1.5.0 (2024-07-28)
|
5
|
+
- Print line numbers as terminal hyperlinks if a `SimpleCov::Formatter::Terminal.config.terminal_hyperlink_target_pattern` is provided
|
6
|
+
|
1
7
|
## v1.4.0 (2024-07-21)
|
2
8
|
- Handle map-spec-file-to-app failure more elegantly (#229)
|
3
9
|
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
simple_cov-formatter-terminal (1.
|
4
|
+
simple_cov-formatter-terminal (1.6.0)
|
5
5
|
activesupport (>= 7.0.4, < 8)
|
6
6
|
memo_wise (>= 1.7.0, < 2)
|
7
7
|
rouge (>= 4.0.0, < 5)
|
@@ -31,7 +31,7 @@ GEM
|
|
31
31
|
concurrent-ruby (1.3.3)
|
32
32
|
connection_pool (2.4.1)
|
33
33
|
diff-lcs (1.5.1)
|
34
|
-
docile (1.4.
|
34
|
+
docile (1.4.1)
|
35
35
|
drb (2.2.1)
|
36
36
|
i18n (1.14.5)
|
37
37
|
concurrent-ruby (~> 1.0)
|
@@ -52,7 +52,7 @@ GEM
|
|
52
52
|
pry-byebug (3.10.1)
|
53
53
|
byebug (~> 11.0)
|
54
54
|
pry (>= 0.13, < 0.15)
|
55
|
-
racc (1.8.
|
55
|
+
racc (1.8.1)
|
56
56
|
rainbow (3.1.1)
|
57
57
|
rake (13.2.1)
|
58
58
|
regexp_parser (2.9.2)
|
@@ -93,12 +93,12 @@ GEM
|
|
93
93
|
ruby-progressbar (1.13.0)
|
94
94
|
runger_config (5.2.0)
|
95
95
|
activesupport (>= 7.1.2)
|
96
|
-
runger_release_assistant (0.
|
96
|
+
runger_release_assistant (0.12.0)
|
97
97
|
activesupport (>= 6, < 8)
|
98
98
|
memo_wise (>= 1.7, < 2)
|
99
99
|
rainbow (>= 3.0, < 4)
|
100
100
|
slop (~> 4.8)
|
101
|
-
runger_style (2.
|
101
|
+
runger_style (2.13.0)
|
102
102
|
prism (>= 0.24.0)
|
103
103
|
rubocop (>= 1.38.0, < 2)
|
104
104
|
simplecov (0.22.0)
|
data/README.md
CHANGED
@@ -115,6 +115,21 @@ branch is not covered on line 18).
|
|
115
115
|
|
116
116
|
[simple-cov-branch-coverage]: https://github.com/simplecov-ruby/simplecov#branch-coverage-ruby--25
|
117
117
|
|
118
|
+
## Terminal hyperlinks
|
119
|
+
|
120
|
+
If you set a `SIMPLECOV_TERMINAL_HYPERLINK_PATTERN`, then SimpleCov::Formatter::Terminal will attempt to print the line numbers in its display as hyperlinks to the relevant line of code.
|
121
|
+
|
122
|
+
The pattern can/should include these interpolation markers:
|
123
|
+
|
124
|
+
- `%f` - This will be replaced with the absolute path of the application file.
|
125
|
+
- `%l` - This will be replaced with the line number.
|
126
|
+
|
127
|
+
For example, this pattern will work to make the line numbers clickable links that open the appropriate file at the appropriate line in VS Code:
|
128
|
+
|
129
|
+
```sh
|
130
|
+
SIMPLECOV_TERMINAL_HYPERLINK_PATTERN="vscode://file/%f:%l"
|
131
|
+
```
|
132
|
+
|
118
133
|
## Development
|
119
134
|
|
120
135
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/rspec` to run
|
@@ -19,9 +19,4 @@ class SimpleCov::Formatter::Terminal::Config < Runger::Config
|
|
19
19
|
unmappable_spec_regexes:
|
20
20
|
SimpleCov::Formatter::Terminal::SpecToAppMapping::DEFAULT_UNMAPPABLE_SPEC_REGEXES,
|
21
21
|
)
|
22
|
-
|
23
|
-
memo_wise \
|
24
|
-
def write_target_info_file?
|
25
|
-
ENV.fetch('SIMPLECOV_WRITE_TARGET_TO_FILE', nil) == '1'
|
26
|
-
end
|
27
22
|
end
|
@@ -7,6 +7,8 @@ class SimpleCov::Formatter::Terminal::LinePrinter
|
|
7
7
|
include SimpleCov::Formatter::Terminal::BranchCoverage
|
8
8
|
include SimpleCov::Formatter::Terminal::ColorPrinting
|
9
9
|
|
10
|
+
LINE_NUMBER_WIDTH = 3
|
11
|
+
|
10
12
|
def initialize(targeted_application_file = nil)
|
11
13
|
@targeted_application_file = targeted_application_file
|
12
14
|
end
|
@@ -37,20 +39,16 @@ class SimpleCov::Formatter::Terminal::LinePrinter
|
|
37
39
|
else color(' ', :white_on_green)
|
38
40
|
end
|
39
41
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
else
|
44
|
-
3
|
45
|
-
end
|
42
|
+
pattern = ENV['SIMPLECOV_TERMINAL_HYPERLINK_PATTERN'].presence
|
43
|
+
|
44
|
+
link_text = line_number.to_s.rjust(LINE_NUMBER_WIDTH, ' ')
|
46
45
|
|
47
46
|
line_number_string =
|
48
|
-
if
|
49
|
-
' '
|
50
|
-
|
51
|
-
":::#{line_number}".rjust(line_number_width, ' ')
|
47
|
+
if pattern
|
48
|
+
link_target = pattern.sub('%f', absolute_target_path).sub('%l', line_number.to_s)
|
49
|
+
"\e]8;;#{link_target}\e\\#{link_text}\e]8;;\e\\"
|
52
50
|
else
|
53
|
-
|
51
|
+
link_text
|
54
52
|
end
|
55
53
|
|
56
54
|
output =
|
@@ -76,4 +74,11 @@ class SimpleCov::Formatter::Terminal::LinePrinter
|
|
76
74
|
highlighted_source = formatter.format(lexer.lex(source))
|
77
75
|
highlighted_source.split("\n")
|
78
76
|
end
|
77
|
+
|
78
|
+
private
|
79
|
+
|
80
|
+
memo_wise \
|
81
|
+
def absolute_target_path
|
82
|
+
File.join(ENV.fetch('PWD'), @targeted_application_file)
|
83
|
+
end
|
79
84
|
end
|
@@ -3,7 +3,6 @@
|
|
3
3
|
require_relative 'branch_coverage'
|
4
4
|
require_relative 'color_printing'
|
5
5
|
require_relative 'line_printer'
|
6
|
-
require_relative 'target_file_writer'
|
7
6
|
|
8
7
|
class SimpleCov::Formatter::Terminal::ResultPrinter
|
9
8
|
extend Forwardable
|
@@ -50,10 +49,6 @@ class SimpleCov::Formatter::Terminal::ResultPrinter
|
|
50
49
|
def print_coverage_details(sourcefile)
|
51
50
|
@sourcefile = sourcefile
|
52
51
|
|
53
|
-
if SimpleCov::Formatter::Terminal.config.write_target_info_file?
|
54
|
-
target_file_writer.write_target_info_file
|
55
|
-
end
|
56
|
-
|
57
52
|
puts("---- Coverage for #{targeted_application_file} ".ljust(80, '-').rstrip)
|
58
53
|
|
59
54
|
skipped_lines = []
|
@@ -142,11 +137,6 @@ class SimpleCov::Formatter::Terminal::ResultPrinter
|
|
142
137
|
SimpleCov::Formatter::Terminal::RSpecIntegration.failure_occurred?
|
143
138
|
end
|
144
139
|
|
145
|
-
memo_wise \
|
146
|
-
def target_file_writer
|
147
|
-
SimpleCov::Formatter::Terminal::TargetFileWriter.new(targeted_application_file)
|
148
|
-
end
|
149
|
-
|
150
140
|
def colorized_coverage(covered_percent)
|
151
141
|
case
|
152
142
|
when covered_percent >= 100 then color("#{covered_percent.round(2)}%", :green)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simple_cov-formatter-terminal
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Runger
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-07-
|
11
|
+
date: 2024-07-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -151,7 +151,6 @@ files:
|
|
151
151
|
- lib/simple_cov/formatter/terminal/rails_awareness.rb
|
152
152
|
- lib/simple_cov/formatter/terminal/result_printer.rb
|
153
153
|
- lib/simple_cov/formatter/terminal/spec_to_app_mapping.rb
|
154
|
-
- lib/simple_cov/formatter/terminal/target_file_writer.rb
|
155
154
|
- lib/simple_cov/formatter/terminal/version.rb
|
156
155
|
- simple_cov-formatter-terminal.gemspec
|
157
156
|
homepage: https://github.com/davidrunger/simple_cov-formatter-terminal
|
@@ -177,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
177
176
|
- !ruby/object:Gem::Version
|
178
177
|
version: '0'
|
179
178
|
requirements: []
|
180
|
-
rubygems_version: 3.5.
|
179
|
+
rubygems_version: 3.5.16
|
181
180
|
signing_key:
|
182
181
|
specification_version: 4
|
183
182
|
summary: Print detailed code coverage info to the terminal
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'memo_wise'
|
4
|
-
|
5
|
-
class SimpleCov::Formatter::Terminal::TargetFileWriter
|
6
|
-
def initialize(targeted_application_file)
|
7
|
-
@targeted_application_file = targeted_application_file
|
8
|
-
end
|
9
|
-
|
10
|
-
def write_target_info_file
|
11
|
-
directory = 'tmp/simple_cov/formatter/terminal'
|
12
|
-
FileUtils.mkdir_p(directory)
|
13
|
-
File.write("#{directory}/target.txt", "#{@targeted_application_file}\n")
|
14
|
-
end
|
15
|
-
end
|