class Kustomize::Emitter::FileEmitter

Public Class Methods

new(source_path, session:) click to toggle source
# File lib/kustomize/emitter/file_emitter.rb, line 7
def initialize(source_path, session:)
  @session = session
  @source_path = source_path
end

Public Instance Methods

input_emitters() click to toggle source
# File lib/kustomize/emitter/file_emitter.rb, line 12
def input_emitters
  return @input_emitters if @input_emitters

  source_docs = YAML.load_stream(@source_path.read)

  @input_emitters = source_docs.map.with_index do |doc, i|
    unless doc.has_key?('kind')
      raise ArgumentError, "invalid Kubernetes resource-config document (missing attribute 'kind'): subdocument #{i} in #{target_path}"
    end

    doc_kind = doc['kind']

    doc_klass =
      begin
        Kustomize::Emitter::DocumentEmitter.const_get(doc_kind + 'DocumentEmitter')
      rescue NameError => e
        Kustomize::Emitter::DocumentEmitter
      end

    doc_klass.load(
      doc,
      source: {path: @source_path, subdocument: i},
      session: @session
    )
  end
end