Class: SvgConform::RemediationRunResult
- Inherits:
-
Object
- Object
- SvgConform::RemediationRunResult
- Defined in:
- lib/svg_conform/remediation_runner.rb
Overview
Result object for overall remediation run (not individual remediation result)
Instance Attribute Summary collapse
-
#error ⇒ Object
readonly
Returns the value of attribute error.
-
#filename ⇒ Object
readonly
Returns the value of attribute filename.
-
#final_validation ⇒ Object
readonly
Returns the value of attribute final_validation.
-
#initial_validation ⇒ Object
readonly
Returns the value of attribute initial_validation.
-
#original_content ⇒ Object
readonly
Returns the value of attribute original_content.
-
#remediated_content ⇒ Object
readonly
Returns the value of attribute remediated_content.
-
#remediation_engine ⇒ Object
readonly
Returns the value of attribute remediation_engine.
-
#remediation_results ⇒ Object
readonly
Returns the value of attribute remediation_results.
Instance Method Summary collapse
-
#changes_summary ⇒ Object
Get summary of changes.
-
#content_modified? ⇒ Boolean
Check if content was modified.
-
#error? ⇒ Boolean
Check if there was an error.
-
#failed_remediations ⇒ Object
Get failed remediations.
-
#generate_conformance_report ⇒ Object
Generate a conformance report for the final state.
-
#initialize(filename:, original_content:, remediated_content:, initial_validation:, final_validation:, remediation_results:, remediation_engine:, error: nil) ⇒ RemediationRunResult
constructor
A new instance of RemediationRunResult.
-
#issues_fixed ⇒ Object
Get the number of issues fixed.
-
#remediations_applied ⇒ Object
Get the number of remediations applied.
-
#success? ⇒ Boolean
Check if remediation was successful.
-
#successful_remediations ⇒ Object
Get successful remediations.
-
#to_h ⇒ Object
Convert to hash for serialization.
Constructor Details
#initialize(filename:, original_content:, remediated_content:, initial_validation:, final_validation:, remediation_results:, remediation_engine:, error: nil) ⇒ RemediationRunResult
Returns a new instance of RemediationRunResult.
119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/svg_conform/remediation_runner.rb', line 119 def initialize(filename:, original_content:, remediated_content:, initial_validation:, final_validation:, remediation_results:, remediation_engine:, error: nil) @filename = filename @original_content = original_content @remediated_content = remediated_content @initial_validation = initial_validation @final_validation = final_validation @remediation_results = remediation_results @remediation_engine = remediation_engine @error = error end |
Instance Attribute Details
#error ⇒ Object (readonly)
Returns the value of attribute error.
115 116 117 |
# File 'lib/svg_conform/remediation_runner.rb', line 115 def error @error end |
#filename ⇒ Object (readonly)
Returns the value of attribute filename.
115 116 117 |
# File 'lib/svg_conform/remediation_runner.rb', line 115 def filename @filename end |
#final_validation ⇒ Object (readonly)
Returns the value of attribute final_validation.
115 116 117 |
# File 'lib/svg_conform/remediation_runner.rb', line 115 def final_validation @final_validation end |
#initial_validation ⇒ Object (readonly)
Returns the value of attribute initial_validation.
115 116 117 |
# File 'lib/svg_conform/remediation_runner.rb', line 115 def initial_validation @initial_validation end |
#original_content ⇒ Object (readonly)
Returns the value of attribute original_content.
115 116 117 |
# File 'lib/svg_conform/remediation_runner.rb', line 115 def original_content @original_content end |
#remediated_content ⇒ Object (readonly)
Returns the value of attribute remediated_content.
115 116 117 |
# File 'lib/svg_conform/remediation_runner.rb', line 115 def remediated_content @remediated_content end |
#remediation_engine ⇒ Object (readonly)
Returns the value of attribute remediation_engine.
115 116 117 |
# File 'lib/svg_conform/remediation_runner.rb', line 115 def remediation_engine @remediation_engine end |
#remediation_results ⇒ Object (readonly)
Returns the value of attribute remediation_results.
115 116 117 |
# File 'lib/svg_conform/remediation_runner.rb', line 115 def remediation_results @remediation_results end |
Instance Method Details
#changes_summary ⇒ Object
Get summary of changes
179 180 181 182 183 184 185 186 187 188 |
# File 'lib/svg_conform/remediation_runner.rb', line 179 def changes_summary return "Error occurred" if @error return "No validation performed" if @initial_validation.nil? if content_modified? "#{issues_fixed} issues fixed, #{remediations_applied} remediations applied" else "No changes needed" end end |
#content_modified? ⇒ Boolean
Check if content was modified
172 173 174 175 176 |
# File 'lib/svg_conform/remediation_runner.rb', line 172 def content_modified? return false if @original_content.nil? || @remediated_content.nil? normalize_content(@original_content) != normalize_content(@remediated_content) end |
#error? ⇒ Boolean
Check if there was an error
138 139 140 |
# File 'lib/svg_conform/remediation_runner.rb', line 138 def error? !@error.nil? end |
#failed_remediations ⇒ Object
Get failed remediations
165 166 167 168 169 |
# File 'lib/svg_conform/remediation_runner.rb', line 165 def failed_remediations return [] if @remediation_results.nil? @remediation_results.select(&:failure?) end |
#generate_conformance_report ⇒ Object
Generate a conformance report for the final state
207 208 209 210 211 212 213 214 215 216 |
# File 'lib/svg_conform/remediation_runner.rb', line 207 def generate_conformance_report return nil if @final_validation.nil? || @filename.nil? SvgConform::ConformanceReport.from_svg_conform_result( @filename, @final_validation, profile: @remediation_engine&.profile&.name || :unknown, use_svgcheck_mapping: true, ) end |
#issues_fixed ⇒ Object
Get the number of issues fixed
143 144 145 146 147 148 149 150 |
# File 'lib/svg_conform/remediation_runner.rb', line 143 def issues_fixed return 0 if @error || @initial_validation.nil? || @final_validation.nil? initial_errors = @initial_validation.failed_requirements.length final_errors = @final_validation.failed_requirements.length [initial_errors - final_errors, 0].max end |
#remediations_applied ⇒ Object
Get the number of remediations applied
153 154 155 |
# File 'lib/svg_conform/remediation_runner.rb', line 153 def remediations_applied @remediation_results&.length || 0 end |
#success? ⇒ Boolean
Check if remediation was successful
133 134 135 |
# File 'lib/svg_conform/remediation_runner.rb', line 133 def success? @error.nil? && @final_validation&.valid? end |
#successful_remediations ⇒ Object
Get successful remediations
158 159 160 161 162 |
# File 'lib/svg_conform/remediation_runner.rb', line 158 def successful_remediations return [] if @remediation_results.nil? @remediation_results.select(&:success?) end |
#to_h ⇒ Object
Convert to hash for serialization
191 192 193 194 195 196 197 198 199 200 201 202 203 204 |
# File 'lib/svg_conform/remediation_runner.rb', line 191 def to_h { filename: @filename, success: success?, error: @error&., issues_fixed: issues_fixed, remediations_applied: remediations_applied, content_modified: content_modified?, changes_summary: changes_summary, initial_errors: @initial_validation&.failed_requirements&.length || 0, final_errors: @final_validation&.failed_requirements&.length || 0, remediation_details: @remediation_results&.map(&:to_h) || [], } end |