branchproof 0.11.1 → 0.12.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.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +82 -0
  3. data/README.md +440 -29
  4. data/doc/Branchproof/CLI.md +1 -1
  5. data/doc/Branchproof/ChangedCoverage.md +19 -0
  6. data/doc/Branchproof/ChangedCoveragePolicy.md +24 -0
  7. data/doc/Branchproof/ChangedDecisionMap.md +20 -0
  8. data/doc/Branchproof/ChangedScope.md +18 -0
  9. data/doc/Branchproof/Collation.md +23 -0
  10. data/doc/Branchproof/CollationManifest.md +29 -0
  11. data/doc/Branchproof/CoverageSummary.md +20 -0
  12. data/doc/Branchproof/Doctor/TerminalRenderer.md +15 -0
  13. data/doc/Branchproof/Doctor.md +34 -0
  14. data/doc/Branchproof/FallbackInstrumentation.md +8 -0
  15. data/doc/Branchproof/FallbackRuntime.md +12 -0
  16. data/doc/Branchproof/FallbackSyntax.md +13 -0
  17. data/doc/Branchproof/GitChanges.md +19 -0
  18. data/doc/Branchproof/GithubReport.md +25 -0
  19. data/doc/Branchproof/HtmlReport.md +22 -0
  20. data/doc/Branchproof/Instrumenter.md +1 -1
  21. data/doc/Branchproof/MinitestAdapter.md +4 -0
  22. data/doc/Branchproof/RakeTask.md +121 -0
  23. data/doc/Branchproof/Report.md +41 -3
  24. data/doc/Branchproof/ReportSelection.md +10 -1
  25. data/doc/Branchproof/Runtime.md +4 -1
  26. data/doc/Branchproof/Source.md +1 -1
  27. data/doc/Branchproof/SummaryRanking/Decision.md +86 -0
  28. data/doc/Branchproof/SummaryRanking/SourceFile.md +43 -0
  29. data/doc/Branchproof/SummaryRanking.md +36 -0
  30. data/doc/Branchproof/SummaryReport.md +42 -0
  31. data/doc/Branchproof/Worker.md +1 -1
  32. data/doc/Branchproof.md +21 -1
  33. data/doc/CHANGELOG.md +82 -0
  34. data/doc/README.md +440 -29
  35. data/lib/branchproof/analyzer.rb +2 -52
  36. data/lib/branchproof/changed_coverage.rb +177 -0
  37. data/lib/branchproof/changed_decision_map.rb +359 -0
  38. data/lib/branchproof/changed_scope.rb +93 -0
  39. data/lib/branchproof/cli.rb +242 -21
  40. data/lib/branchproof/collation.rb +525 -0
  41. data/lib/branchproof/collation_manifest.rb +129 -0
  42. data/lib/branchproof/comparison.rb +11 -3
  43. data/lib/branchproof/comparison_report.rb +2 -0
  44. data/lib/branchproof/configuration.rb +12 -2
  45. data/lib/branchproof/coverage_policy.rb +122 -0
  46. data/lib/branchproof/coverage_summary.rb +94 -0
  47. data/lib/branchproof/doctor.rb +241 -0
  48. data/lib/branchproof/evidence.rb +5 -1
  49. data/lib/branchproof/exception_instrumentation.rb +4 -3
  50. data/lib/branchproof/exception_syntax.rb +15 -1
  51. data/lib/branchproof/fallback_instrumentation.rb +25 -0
  52. data/lib/branchproof/fallback_runtime.rb +14 -0
  53. data/lib/branchproof/fallback_syntax.rb +90 -0
  54. data/lib/branchproof/focused_report.rb +81 -22
  55. data/lib/branchproof/git_changes.rb +188 -0
  56. data/lib/branchproof/github_report.rb +292 -0
  57. data/lib/branchproof/html_report.rb +412 -0
  58. data/lib/branchproof/instrumenter.rb +2 -0
  59. data/lib/branchproof/minimizer.rb +4 -2
  60. data/lib/branchproof/minitest_adapter.rb +45 -5
  61. data/lib/branchproof/rails_support.rb +2 -2
  62. data/lib/branchproof/rake_task.rb +186 -0
  63. data/lib/branchproof/report.rb +383 -71
  64. data/lib/branchproof/report_selection.rb +26 -5
  65. data/lib/branchproof/runtime.rb +2 -0
  66. data/lib/branchproof/saved_report.rb +323 -5
  67. data/lib/branchproof/source.rb +15 -3
  68. data/lib/branchproof/summary_ranking.rb +165 -0
  69. data/lib/branchproof/summary_report.rb +241 -0
  70. data/lib/branchproof/version.rb +1 -1
  71. data/lib/branchproof/worker.rb +14 -9
  72. data/lib/branchproof.rb +12 -0
  73. data/llms.txt +21 -1
  74. data/sig/branchproof.rbs +206 -5
  75. metadata +39 -23
data/sig/branchproof.rbs CHANGED
@@ -49,6 +49,14 @@ module Branchproof
49
49
  def self.load: (path: String, root: String, ?explicit: bool, ?disabled: bool) -> record?
50
50
  end
51
51
 
52
+ class Doctor
53
+ LIMITATIONS: Array[String]
54
+ def initialize: (options: record, ?runtime: { engine: String, version: String }, ?loaded_features: Array[String], ?gem_sources: { activated: Hash[String, untyped], discoverable: ^(String) -> Array[untyped] }) -> void
55
+ def document: (source_files: Array[String], test_files: Array[String]) -> record
56
+ def self.error: (String message) -> record
57
+ def self.terminal: (record document) -> String
58
+ end
59
+
52
60
  module RailsSupport
53
61
  def self.boot: (project: record) -> record
54
62
  def self.validate_rspec!: (project: record) -> record?
@@ -84,6 +92,7 @@ module Branchproof
84
92
  def self.flow_assignment_receiver: (String decision_id, untyped receiver) -> untyped
85
93
  def self.flow_assignment_path: (String decision_id, Integer index) -> nil
86
94
  def self.flow_assignment_finish: (String decision_id, untyped value, ?Integer? default_path) -> untyped
95
+ def self.fallback_operand: (String decision_id, Integer index, bool implicit, untyped value) -> untyped
87
96
  def self.exception_enter: (String decision_id, Integer unhandled_index) -> nil
88
97
  def self.exception_path: (String decision_id, Integer index) -> nil
89
98
  def self.exception_value: (String decision_id, untyped value, Integer index) -> untyped
@@ -134,6 +143,13 @@ module Branchproof
134
143
  def call: (document: document?) -> record
135
144
  end
136
145
 
146
+ class ChangedCoveragePolicy
147
+ CRITERIA: Hash[String, Hash[Symbol, String]]
148
+ COMPLETENESS_FIELDS: Array[String]
149
+ def initialize: (minimum_changed: Hash[String | Symbol, untyped]) -> void
150
+ def call: (document: document?, scope: document?) -> record
151
+ end
152
+
137
153
  module Constraints
138
154
  VERSION: Integer
139
155
  NUMERIC_OPERATORS: Array[String]
@@ -181,6 +197,9 @@ module Branchproof
181
197
  end
182
198
 
183
199
  class MinitestAdapter
200
+ def self.load_framework!: () -> Module
201
+ def self.active_adapter: () -> MinitestAdapter?
202
+ def self.active_adapter=: (MinitestAdapter?) -> MinitestAdapter?
184
203
  def initialize: (runtime: untyped) -> void
185
204
  def capabilities: () -> record
186
205
  def run: (test_files: Array[String], runner_args: Array[String], on_complete: ^(record) -> untyped, ?before_load: ^() -> untyped?) -> nil
@@ -207,12 +226,33 @@ module Branchproof
207
226
  def validate_runner!: () -> nil
208
227
  end
209
228
 
229
+ module Worker
230
+ def self.child_process: (String config_path) -> Integer?
231
+ def self.adapter_for: (record project, untyped runtime) -> (MinitestAdapter | RSpecAdapter)
232
+ def self.guard_late_rspec_execution: (RSpecAdapter adapter, Hash[String, untyped] payload) -> untyped
233
+ def self.legacy_project: () -> Hash[String, untyped]
234
+ def self.prepend_load_paths: (record project) -> nil
235
+ def self.boot_project: (record project) -> record?
236
+ def self.project_metadata: (record project, record? rails_metadata) -> record
237
+ def self.completion_result: (baseline: record, project: record, rails_metadata: record?, evidence: record, tests: Array[record], diagnostics: Array[record]) -> record
238
+ def self.incomplete_evidence: (record evidence, Array[record] diagnostics) -> record
239
+ def self.write_completion: (Hash[String, untyped] payload, record result) -> nil
240
+ def self.write_failure: (Hash[String, untyped] payload, String code, untyped details, ?evidence: record?) -> nil
241
+ def self.project_metadata_for: (Hash[String, untyped] payload) -> record
242
+ def self.symbolize: (untyped value) -> untyped
243
+ def self.normalize: (untyped value) -> untyped
244
+ end
245
+
210
246
  class Report
211
247
  SCHEMA_VERSION: String
248
+ CHANGED_SCOPE_SCHEMA_VERSION: String
249
+ CHANGED_POLICY_SCHEMA_VERSION: String
250
+ COLLATION_SCHEMA_VERSION: String
212
251
  CRITERION_VERSION: String
213
252
  VIEWS: Array[Symbol]
214
- def initialize: (inventory: document, evidence: document, analysis: document?, minima: Array[document], baseline: document, diagnostics: Array[document], ?level: Integer, ?missing_only: bool, ?view: Symbol, ?run_metadata: document, ?saved_document: document?, ?focus: String?, ?top: (Integer | String)?, ?minimum: document?) -> void
215
- def self.from_document: (document: document, ?level: Integer?, ?view: Symbol, ?missing_only: bool, ?focus: String?, ?top: (Integer | String)?, ?minimum: document?) -> Report
253
+ FORMATS: Array[Symbol]
254
+ def initialize: (inventory: document, evidence: document, analysis: document?, minima: Array[document], baseline: document, diagnostics: Array[document], ?level: Integer, ?missing_only: bool, ?view: Symbol, ?run_metadata: document, ?saved_document: document?, ?focus: String?, ?top: (Integer | String)?, ?minimum: document?, ?changed_scope: document?, ?minimum_changed: document?) -> void
255
+ def self.from_document: (document: document, ?level: Integer?, ?view: Symbol, ?missing_only: bool, ?focus: String?, ?top: (Integer | String)?, ?minimum: document?, ?minimum_changed: document?) -> Report
216
256
  def diagnostic_message: (Hash[Symbol | String, untyped] diagnostic) -> String
217
257
  def condition_explanation: (decision_id: String, condition_id: String) -> String
218
258
  def decision_table_requirement: (untyped value) -> String?
@@ -220,11 +260,47 @@ module Branchproof
220
260
  def decision_table_expected_heading: (document decision) -> String
221
261
  def coverage_policy: () -> record
222
262
  def coverage_policy_lines: () -> Array[String]
263
+ def collation_lines: () -> Array[String]
264
+ def changed_coverage_policy: () -> record
265
+ def changed_scope_lines: () -> Array[String]
266
+ def changed_coverage_available?: () -> bool
267
+ def display_scope_path: (String path) -> String
223
268
  def rerun_command: (String test_id) -> String?
224
- def write: (io: _WriteIO, format: Symbol | String) -> nil
269
+ def write: (io: _WriteIO, format: Symbol | String, ?path_prefix: String?) -> nil
270
+ def step_summary: () -> String
225
271
  def exit_code: () -> Integer
226
272
  end
227
273
 
274
+ class HtmlReport
275
+ def initialize: (document: document, level: Integer, coordinator: Report, ?missing_only: bool, ?selection: ReportSelection) -> void
276
+ def render: () -> String
277
+ end
278
+
279
+ class ChangedScope
280
+ def initialize: (root: String, ref: String) -> void
281
+ def call: (inventory: record) -> record
282
+ end
283
+
284
+ class GitChanges
285
+ def initialize: (root: String, ref: String) -> void
286
+ def call: (?include_patch_lines: bool) -> record
287
+ end
288
+
289
+ class ChangedDecisionMap
290
+ def call: (bytes: String, path: String, decisions: Array[record], hunks: Array[record], ?old_bytes: String) -> Array[String]
291
+ end
292
+
293
+ module ChangedCoverage
294
+ def self.call: (document: document, scope: record) -> record
295
+ end
296
+
297
+ module CoverageSummary
298
+ def self.call: (Array[record] decisions) -> record
299
+ def self.decision_table_aggregate: (Array[record] boolean_supported) -> record
300
+ def self.alternative_aggregate: (Array[record] decisions) -> record
301
+ def self.alternative_decision?: (record decision) -> bool
302
+ end
303
+
228
304
  class CoverageIndex
229
305
  def initialize: (document: document) -> void
230
306
  attr_reader conditions: Array[record]
@@ -238,14 +314,86 @@ module Branchproof
238
314
  def render: () -> String
239
315
  end
240
316
 
317
+ class SummaryRanking
318
+ class Decision
319
+ attr_reader id: String
320
+ attr_reader relative_path: String?
321
+ attr_reader line: Integer?
322
+ attr_reader column: Integer?
323
+ attr_reader expression: String
324
+ attr_reader kind: String
325
+ attr_reader context: String?
326
+ attr_reader unexecuted: bool
327
+ attr_reader missing_rules: Array[record]
328
+ attr_reader required_rules: Integer
329
+ attr_reader table_calculated: bool
330
+ attr_reader unproven_conditions: Array[record]
331
+ attr_reader conditions: Array[record]
332
+ attr_reader missing_alternatives: Array[record]
333
+ attr_reader alternatives: Array[record]
334
+ attr_reader test_ids: Array[String]
335
+ def missing_total: () -> Integer
336
+ def gap?: () -> bool
337
+ def cases_to_test: () -> Integer
338
+ def rule_cases?: () -> bool
339
+ end
340
+
341
+ class SourceFile
342
+ attr_reader relative_path: String?
343
+ attr_reader decisions: Array[Decision]
344
+ def gaps: () -> Integer
345
+ def unexecuted: () -> Integer
346
+ def missing_rules: () -> Integer
347
+ def required_rules: () -> Integer
348
+ def unproven_conditions: () -> Integer
349
+ def conditions: () -> Integer
350
+ def missing_alternatives: () -> Integer
351
+ def alternatives: () -> Integer
352
+ def missing_total: () -> Integer
353
+ end
354
+
355
+ attr_reader index: CoverageIndex
356
+ def initialize: (document: document, ?selection: ReportSelection) -> void
357
+ def available?: () -> bool
358
+ def decisions: () -> Array[Decision]
359
+ def gaps: () -> Array[Decision]
360
+ def files: () -> Array[SourceFile]
361
+ def unsupported_count: () -> Integer
362
+ end
363
+
364
+ class SummaryReport
365
+ ORDER_NOTE: String
366
+ def initialize: (document: document, level: Integer, coordinator: Report, ?missing_only: bool, ?selection: ReportSelection) -> void
367
+ def render: () -> String
368
+ def self.gap_summary: (SummaryRanking::Decision decision) -> String
369
+ def self.case_lines: (SummaryRanking::Decision decision, Report coordinator) -> Array[String]
370
+ def self.one_line: (String text, ?Integer width) -> String
371
+ def self.rule_text: (record rule, Array[String] expressions, Report coordinator) -> String
372
+ end
373
+
374
+ class GithubReport
375
+ MARKDOWN_ROWS: Integer
376
+ def initialize: (document: document, level: Integer, coordinator: Report, ?selection: ReportSelection, ?path_prefix: String?) -> void
377
+ def annotations: (?path_prefix: String?) -> String
378
+ def step_summary: () -> String
379
+ end
380
+
381
+ class CLI
382
+ def initialize: (stdout: _WriteIO, stderr: _WriteIO, ?env: _Env) -> void
383
+ def call: (Array[String] argv) -> Integer
384
+ end
385
+
241
386
  class ReportSelection
242
387
  attr_reader focus: record?
243
388
  attr_reader top: Integer?
244
- def initialize: (?focus: String?, ?top: (Integer | String)?) -> void
389
+ attr_reader decision_ids: Array[String]?
390
+ def initialize: (?focus: String?, ?top: (Integer | String)?, ?decision_ids: Array[String]?) -> void
245
391
  def active?: () -> bool
246
392
  def focus_active?: () -> bool
393
+ def decision_filter_active?: () -> bool
247
394
  def focus_label: () -> String?
248
- def matching_decision_ids: (document: document) -> Array[String]
395
+ def matching_decision_ids: (document document) -> Array[String]
396
+ def selected_decision_ids: (document document) -> Array[String]?
249
397
  def filter_decisions: (Array[record] decisions, ?inventory: document) -> Array[record]
250
398
  def limit: (Array[record] items) -> [Array[record], Integer]
251
399
  def sort_key: (record decision, ?inventory: document) -> [String, Integer, Integer, String]
@@ -255,6 +403,20 @@ module Branchproof
255
403
  def self.read: (String path) -> document
256
404
  end
257
405
 
406
+ class Collation
407
+ def initialize: (inputs: Array[Hash[Symbol | String, untyped]], ?expected_shards: Array[String]?) -> void
408
+ def call: () -> Hash[String, untyped]
409
+ end
410
+
411
+ class CollationManifest
412
+ attr_reader expected_ids: Array[String]
413
+ attr_reader declared_paths: Array[String]
414
+ attr_reader declared_identities: Array[String]
415
+ attr_reader inputs: Array[Hash[Symbol, String]]
416
+ def self.path_identity: (String path) -> String
417
+ def initialize: (path: String, supplied_paths: Array[String]) -> void
418
+ end
419
+
258
420
  class Comparison
259
421
  def initialize: (before: document, after: document) -> void
260
422
  def call: () -> document
@@ -266,6 +428,45 @@ module Branchproof
266
428
  def exit_code: (?fail_on_regression: bool) -> Integer
267
429
  end
268
430
 
431
+ class RakeTask < Rake::TaskLib
432
+ OPTIONS: Array[Symbol]
433
+ REPEATED_FLAGS: Hash[Symbol, String]
434
+ DEFAULTS: Hash[Symbol, untyped]
435
+ attr_reader name: Symbol
436
+ attr_accessor description: String
437
+ attr_reader sources: Array[String]
438
+ attr_reader tests: Array[String]
439
+ attr_reader project: String
440
+ attr_reader framework: String
441
+ attr_reader view: String
442
+ attr_reader level: Integer
443
+ attr_reader missing_only: bool
444
+ attr_reader minimum: Array[String]
445
+ attr_reader format: String
446
+ attr_reader output: String?
447
+ attr_reader runner_args: Array[String]
448
+ def initialize: (?Symbol | String name) ?{ (RakeTask) -> void } -> void
449
+ def sources=: (Array[String] | String value) -> Array[String]
450
+ def tests=: (Array[String] value) -> Array[String]
451
+ def project=: (String value) -> String
452
+ def framework=: (String value) -> String
453
+ def view=: (String value) -> String
454
+ def level=: (Integer value) -> Integer
455
+ def missing_only=: (bool value) -> bool
456
+ def minimum=: (Array[String] value) -> Array[String]
457
+ def format=: (String value) -> String
458
+ def output=: (String? value) -> String?
459
+ def runner_args=: (Array[String] | String value) -> Array[String]
460
+ def argv: () -> Array[String]
461
+ def command: () -> Array[String]
462
+ def executable: () -> String
463
+ def run: () -> void
464
+ end
465
+
466
+ interface _Env
467
+ def []: (String) -> String?
468
+ end
469
+
269
470
  interface _WriteIO
270
471
  def write: (String) -> Integer
271
472
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: branchproof
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.1
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lucian Ghinda
@@ -9,26 +9,6 @@ bindir: exe
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
- - !ruby/object:Gem::Dependency
13
- name: minitest
14
- requirement: !ruby/object:Gem::Requirement
15
- requirements:
16
- - - ">="
17
- - !ruby/object:Gem::Version
18
- version: 5.25.5
19
- - - "<"
20
- - !ruby/object:Gem::Version
21
- version: '6'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- version: 5.25.5
29
- - - "<"
30
- - !ruby/object:Gem::Version
31
- version: '6'
32
12
  - !ruby/object:Gem::Dependency
33
13
  name: prism
34
14
  requirement: !ruby/object:Gem::Requirement
@@ -68,6 +48,12 @@ files:
68
48
  - doc/Branchproof.md
69
49
  - doc/Branchproof/Analyzer.md
70
50
  - doc/Branchproof/CLI.md
51
+ - doc/Branchproof/ChangedCoverage.md
52
+ - doc/Branchproof/ChangedCoveragePolicy.md
53
+ - doc/Branchproof/ChangedDecisionMap.md
54
+ - doc/Branchproof/ChangedScope.md
55
+ - doc/Branchproof/Collation.md
56
+ - doc/Branchproof/CollationManifest.md
71
57
  - doc/Branchproof/Comparison.md
72
58
  - doc/Branchproof/ComparisonReport.md
73
59
  - doc/Branchproof/Configuration.md
@@ -75,19 +61,28 @@ files:
75
61
  - doc/Branchproof/Constraints/Solver.md
76
62
  - doc/Branchproof/CoverageIndex.md
77
63
  - doc/Branchproof/CoveragePolicy.md
64
+ - doc/Branchproof/CoverageSummary.md
78
65
  - doc/Branchproof/DecisionSyntax.md
79
66
  - doc/Branchproof/DecisionTable.md
80
67
  - doc/Branchproof/DefaultInstrumentation.md
81
68
  - doc/Branchproof/DefaultRuntime.md
82
69
  - doc/Branchproof/DefaultSyntax.md
70
+ - doc/Branchproof/Doctor.md
71
+ - doc/Branchproof/Doctor/TerminalRenderer.md
83
72
  - doc/Branchproof/Error.md
84
73
  - doc/Branchproof/Evidence.md
85
74
  - doc/Branchproof/ExceptionInstrumentation.md
86
75
  - doc/Branchproof/ExceptionRuntime.md
87
76
  - doc/Branchproof/ExceptionSyntax.md
88
77
  - doc/Branchproof/ExtendedAlternativeRuntime.md
78
+ - doc/Branchproof/FallbackInstrumentation.md
79
+ - doc/Branchproof/FallbackRuntime.md
80
+ - doc/Branchproof/FallbackSyntax.md
89
81
  - doc/Branchproof/FlowInstrumentation.md
90
82
  - doc/Branchproof/FocusedReport.md
83
+ - doc/Branchproof/GitChanges.md
84
+ - doc/Branchproof/GithubReport.md
85
+ - doc/Branchproof/HtmlReport.md
91
86
  - doc/Branchproof/Instrumenter.md
92
87
  - doc/Branchproof/IterationInstrumentation.md
93
88
  - doc/Branchproof/IterationRuntime.md
@@ -106,6 +101,7 @@ files:
106
101
  - doc/Branchproof/RSpecAdapter/UnsupportedRunner.md
107
102
  - doc/Branchproof/RailsSupport.md
108
103
  - doc/Branchproof/RailsSupport/Error.md
104
+ - doc/Branchproof/RakeTask.md
109
105
  - doc/Branchproof/Records.md
110
106
  - doc/Branchproof/Report.md
111
107
  - doc/Branchproof/ReportSelection.md
@@ -113,6 +109,10 @@ files:
113
109
  - doc/Branchproof/RuntimeFlow.md
114
110
  - doc/Branchproof/SavedReport.md
115
111
  - doc/Branchproof/Source.md
112
+ - doc/Branchproof/SummaryRanking.md
113
+ - doc/Branchproof/SummaryRanking/Decision.md
114
+ - doc/Branchproof/SummaryRanking/SourceFile.md
115
+ - doc/Branchproof/SummaryReport.md
116
116
  - doc/Branchproof/ValueInstrumentation.md
117
117
  - doc/Branchproof/ValueRuntime.md
118
118
  - doc/Branchproof/ValueSyntax.md
@@ -123,25 +123,38 @@ files:
123
123
  - exe/mcdc
124
124
  - lib/branchproof.rb
125
125
  - lib/branchproof/analyzer.rb
126
+ - lib/branchproof/changed_coverage.rb
127
+ - lib/branchproof/changed_decision_map.rb
128
+ - lib/branchproof/changed_scope.rb
126
129
  - lib/branchproof/cli.rb
130
+ - lib/branchproof/collation.rb
131
+ - lib/branchproof/collation_manifest.rb
127
132
  - lib/branchproof/comparison.rb
128
133
  - lib/branchproof/comparison_report.rb
129
134
  - lib/branchproof/configuration.rb
130
135
  - lib/branchproof/constraints.rb
131
136
  - lib/branchproof/coverage_index.rb
132
137
  - lib/branchproof/coverage_policy.rb
138
+ - lib/branchproof/coverage_summary.rb
133
139
  - lib/branchproof/decision_syntax.rb
134
140
  - lib/branchproof/decision_table.rb
135
141
  - lib/branchproof/default_instrumentation.rb
136
142
  - lib/branchproof/default_runtime.rb
137
143
  - lib/branchproof/default_syntax.rb
144
+ - lib/branchproof/doctor.rb
138
145
  - lib/branchproof/evidence.rb
139
146
  - lib/branchproof/exception_instrumentation.rb
140
147
  - lib/branchproof/exception_runtime.rb
141
148
  - lib/branchproof/exception_syntax.rb
142
149
  - lib/branchproof/extended_alternative_runtime.rb
150
+ - lib/branchproof/fallback_instrumentation.rb
151
+ - lib/branchproof/fallback_runtime.rb
152
+ - lib/branchproof/fallback_syntax.rb
143
153
  - lib/branchproof/flow_instrumentation.rb
144
154
  - lib/branchproof/focused_report.rb
155
+ - lib/branchproof/git_changes.rb
156
+ - lib/branchproof/github_report.rb
157
+ - lib/branchproof/html_report.rb
145
158
  - lib/branchproof/instrumenter.rb
146
159
  - lib/branchproof/iteration_instrumentation.rb
147
160
  - lib/branchproof/iteration_runtime.rb
@@ -152,6 +165,7 @@ files:
152
165
  - lib/branchproof/minitest_adapter.rb
153
166
  - lib/branchproof/project.rb
154
167
  - lib/branchproof/rails_support.rb
168
+ - lib/branchproof/rake_task.rb
155
169
  - lib/branchproof/records.rb
156
170
  - lib/branchproof/report.rb
157
171
  - lib/branchproof/report_selection.rb
@@ -160,6 +174,8 @@ files:
160
174
  - lib/branchproof/runtime_flow.rb
161
175
  - lib/branchproof/saved_report.rb
162
176
  - lib/branchproof/source.rb
177
+ - lib/branchproof/summary_ranking.rb
178
+ - lib/branchproof/summary_report.rb
163
179
  - lib/branchproof/value_instrumentation.rb
164
180
  - lib/branchproof/value_runtime.rb
165
181
  - lib/branchproof/value_syntax.rb
@@ -183,14 +199,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
183
199
  requirements:
184
200
  - - ">="
185
201
  - !ruby/object:Gem::Version
186
- version: 3.3.0
202
+ version: '4.0'
187
203
  required_rubygems_version: !ruby/object:Gem::Requirement
188
204
  requirements:
189
205
  - - ">="
190
206
  - !ruby/object:Gem::Version
191
207
  version: '0'
192
208
  requirements: []
193
- rubygems_version: 3.7.2
209
+ rubygems_version: 4.0.11
194
210
  specification_version: 4
195
211
  summary: Modified condition and decision coverage for Ruby tests
196
212
  test_files: []