Module: Migflow::Reporters
- Defined in:
- lib/migflow/reporters.rb,
lib/migflow/reporters/json_reporter.rb,
lib/migflow/reporters/markdown_reporter.rb
Defined Under Namespace
Classes: JsonReporter, MarkdownReporter
Constant Summary collapse
- LEVEL_THRESHOLDS =
Maps level names to the minimum score for that level: { “high” => 71, “medium” => 31, “low” => 1 }
Migflow::Services::RiskScorer::LEVELS .reject { |l| l[:level] == "safe" } .to_h { |l| [l[:level], l[:min]] } .freeze
Class Method Summary collapse
- .for(format) ⇒ Object
-
.resolve_threshold(fail_on) ⇒ Object
Resolves FAIL_ON value (level name or numeric string) to a minimum score threshold.
Class Method Details
.for(format) ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/migflow/reporters.rb', line 15 def self.for(format) case format.to_sym when :json then JsonReporter.new when :markdown then MarkdownReporter.new else raise ArgumentError, "Unknown format: #{format}. Use 'json' or 'markdown'." end end |
.resolve_threshold(fail_on) ⇒ Object
Resolves FAIL_ON value (level name or numeric string) to a minimum score threshold. Returns nil if FAIL_ON is blank.
25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/migflow/reporters.rb', line 25 def self.resolve_threshold(fail_on) return nil if fail_on.nil? || fail_on.strip.empty? if fail_on.match?(/\A\d+\z/) Integer(fail_on) else LEVEL_THRESHOLDS.fetch(fail_on.downcase) do raise ArgumentError, "Unknown FAIL_ON level '#{fail_on}'. Use low/medium/high or a numeric score." end end end |