feature_map 1.2.4 → 1.2.5
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/README.md +2 -2
- data/bin/docs +18 -0
- data/lib/feature_map/cli.rb +45 -7
- data/lib/feature_map/code_features.rb +1 -0
- data/lib/feature_map/commit.rb +1 -0
- data/lib/feature_map/configuration.rb +1 -0
- data/lib/feature_map/constants.rb +1 -0
- data/lib/feature_map/mapper.rb +1 -0
- data/lib/feature_map/output_color.rb +1 -0
- data/lib/feature_map/private/additional_metrics_file.rb +1 -0
- data/lib/feature_map/private/assignment_applicator.rb +1 -0
- data/lib/feature_map/private/assignment_mappers/feature_definition_assignment.rb +14 -0
- data/lib/feature_map/private/assignments_file.rb +1 -0
- data/lib/feature_map/private/code_cov.rb +1 -0
- data/lib/feature_map/private/cyclomatic_complexity_calculator.rb +1 -0
- data/lib/feature_map/private/docs/index.html +99 -94
- data/lib/feature_map/private/documentation_site.rb +1 -0
- data/lib/feature_map/private/extension_loader.rb +1 -0
- data/lib/feature_map/private/feature_assigner.rb +1 -0
- data/lib/feature_map/private/feature_metrics_calculator.rb +1 -0
- data/lib/feature_map/private/feature_plugins/assignment.rb +1 -0
- data/lib/feature_map/private/glob_cache.rb +1 -0
- data/lib/feature_map/private/health_calculator.rb +1 -0
- data/lib/feature_map/private/lines_of_code_calculator.rb +1 -0
- data/lib/feature_map/private/metrics_file.rb +1 -0
- data/lib/feature_map/private/percentile_metrics_calculator.rb +1 -0
- data/lib/feature_map/private/release_notification_builder.rb +1 -0
- data/lib/feature_map/private/simple_cov_resultsets.rb +30 -0
- data/lib/feature_map/private/test_coverage_file.rb +1 -0
- data/lib/feature_map/private/test_pyramid_file.rb +1 -0
- data/lib/feature_map/private/todo_inspector.rb +1 -0
- data/lib/feature_map/private.rb +9 -0
- data/lib/feature_map/validator.rb +1 -0
- data/lib/feature_map.rb +5 -0
- metadata +17 -2
@@ -0,0 +1,30 @@
|
|
1
|
+
# @feature Testing Tools
|
2
|
+
class SimpleCovResultsets
|
3
|
+
def self.fetch_coverage_stats(simplecov_resultsets)
|
4
|
+
root_dir = "#{Dir.pwd}/"
|
5
|
+
|
6
|
+
simplecov_resultsets.reduce({}) do |combined_stats, simplecov_resultset|
|
7
|
+
coverage_data = simplecov_resultset['RSpec']['coverage']
|
8
|
+
|
9
|
+
file_stats = coverage_data.map do |absolute_path, file_data|
|
10
|
+
relative_path = absolute_path.sub(root_dir, '')
|
11
|
+
lines_data = file_data['lines']
|
12
|
+
|
13
|
+
executable_lines = lines_data.compact.size
|
14
|
+
covered_lines = lines_data.count { |line| line&.positive? }
|
15
|
+
missed_lines = executable_lines - covered_lines
|
16
|
+
coverage_percentage = executable_lines.positive? ? ((covered_lines.to_f / executable_lines) * 100).round(2) : 0
|
17
|
+
|
18
|
+
# Return a tuple of [path, stats]
|
19
|
+
[relative_path, {
|
20
|
+
'lines' => executable_lines,
|
21
|
+
'hits' => covered_lines,
|
22
|
+
'misses' => missed_lines,
|
23
|
+
'coverage_ratio' => coverage_percentage
|
24
|
+
}]
|
25
|
+
end
|
26
|
+
|
27
|
+
combined_stats.merge(file_stats.to_h)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/feature_map/private.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# @feature Core Library
|
1
2
|
# frozen_string_literal: true
|
2
3
|
|
3
4
|
require 'code_ownership'
|
@@ -21,6 +22,7 @@ require 'feature_map/private/code_cov'
|
|
21
22
|
require 'feature_map/private/test_coverage_file'
|
22
23
|
require 'feature_map/private/test_pyramid_file'
|
23
24
|
require 'feature_map/private/additional_metrics_file'
|
25
|
+
require 'feature_map/private/simple_cov_resultsets'
|
24
26
|
require 'feature_map/private/feature_plugins/assignment'
|
25
27
|
require 'feature_map/private/validations/files_have_features'
|
26
28
|
require 'feature_map/private/validations/features_up_to_date'
|
@@ -110,6 +112,13 @@ module FeatureMap
|
|
110
112
|
TestPyramidFile.write!(unit_examples, integration_examples, regression_examples, regression_assignments)
|
111
113
|
end
|
112
114
|
|
115
|
+
def self.gather_simplecov_test_coverage!(simplecov_paths)
|
116
|
+
simplecov_resultsets = simplecov_paths.map { |path| JSON.parse(File.read(path)) }
|
117
|
+
coverage_stats = SimpleCovResultsets.fetch_coverage_stats(simplecov_resultsets)
|
118
|
+
|
119
|
+
TestCoverageFile.write!(coverage_stats)
|
120
|
+
end
|
121
|
+
|
113
122
|
def self.gather_test_coverage!(commit_sha, code_cov_token)
|
114
123
|
coverage_stats = CodeCov.fetch_coverage_stats(commit_sha, code_cov_token)
|
115
124
|
|
data/lib/feature_map.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# @feature Core Library
|
1
2
|
# frozen_string_literal: true
|
2
3
|
|
3
4
|
require 'set'
|
@@ -97,6 +98,10 @@ module FeatureMap
|
|
97
98
|
Private.generate_test_pyramid!(unit_path, integration_path, regression_path, regression_assignments_path)
|
98
99
|
end
|
99
100
|
|
101
|
+
def gather_simplecov_test_coverage!(simplecov_resultsets)
|
102
|
+
Private.gather_simplecov_test_coverage!(simplecov_resultsets)
|
103
|
+
end
|
104
|
+
|
100
105
|
def gather_test_coverage!(commit_sha, code_cov_token)
|
101
106
|
Private.gather_test_coverage!(commit_sha, code_cov_token)
|
102
107
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: feature_map
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Beyond Finance
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-03-
|
11
|
+
date: 2025-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: code_ownership
|
@@ -150,6 +150,20 @@ dependencies:
|
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '3.0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: simplecov
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: webmock
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -210,6 +224,7 @@ files:
|
|
210
224
|
- lib/feature_map/private/metrics_file.rb
|
211
225
|
- lib/feature_map/private/percentile_metrics_calculator.rb
|
212
226
|
- lib/feature_map/private/release_notification_builder.rb
|
227
|
+
- lib/feature_map/private/simple_cov_resultsets.rb
|
213
228
|
- lib/feature_map/private/test_coverage_file.rb
|
214
229
|
- lib/feature_map/private/test_pyramid_file.rb
|
215
230
|
- lib/feature_map/private/todo_inspector.rb
|