Class: Kamal::Lint::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/kamal/lint/runner.rb

Instance Method Summary collapse

Constructor Details

#initialize(config_file:, destination: nil, kamal_version: nil, registry: Lint.registry, include_kamal_errors: false) ⇒ Runner

Returns a new instance of Runner.



43
44
45
46
47
48
49
50
# File 'lib/kamal/lint/runner.rb', line 43

def initialize(config_file:, destination: nil, kamal_version: nil,
  registry: Lint.registry, include_kamal_errors: false)
  @config_file = config_file
  @destination = destination
  @kamal_version_override = kamal_version
  @registry = registry
  @include_kamal_errors = include_kamal_errors
end

Instance Method Details

#callObject



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/kamal/lint/runner.rb', line 52

def call
  targets = discover_targets
  all_findings = []
  last_context = nil

  targets.each do |destination|
    context = Loader.load(
      config_file: @config_file,
      destination: destination,
      kamal_version: @kamal_version_override,
      include_kamal_errors: @include_kamal_errors
    )
    last_context = context

    @registry.applicable_to(context.kamal_version).each do |check_class|
      Array(check_class.new(context).call).each do |finding|
        finding.destination = destination
        all_findings << finding
      end
    end
  end

  Result.new(findings: all_findings, context: last_context, destinations: targets)
end