Module: Kennel::ValidatePlan
- Defined in:
- lib/kennel/tasks/validate_plan.rb
Defined Under Namespace
Classes: DashboardValidator, MonitorValidator
Constant Summary collapse
- VALIDATORS =
{ "monitor" => MonitorValidator, "dashboard" => DashboardValidator }.freeze
Class Method Summary collapse
Class Method Details
.validate(plan) ⇒ Object
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/kennel/tasks/validate_plan.rb', line 83 def self.validate(plan) changes = (plan.creates + plan.updates) validators = changes.filter_map do |item| next unless (validator = VALIDATORS[item.api_resource]&.new(item)) if item.class::TYPE == :update # ignore if nothing can break modified_fields = item.diff.map { |_, f, *| f } next nil if modified_fields.all? { |f| validator.class::COSMETIC_FIELDS.include?(f) } end validator end api = Kennel::Api.new errors = validators.filter_map { |v| v.validate(api) } return if errors.empty? abort "#{Kennel::Console.color(:red, "#{errors.size} validation(s) failed:")}\n#{errors.join("\n")}" end |