Class: Kustomize::Emitter::FileEmitter
- Inherits:
-
Kustomize::Emitter
- Object
- Kustomize::Emitter
- Kustomize::Emitter::FileEmitter
- Defined in:
- lib/kustomize/emitter/file_emitter.rb
Instance Method Summary collapse
-
#initialize(source_path, session:) ⇒ FileEmitter
constructor
A new instance of FileEmitter.
- #input_emitters ⇒ Object
Methods inherited from Kustomize::Emitter
#emit, #input_resources, #inspect, #to_yaml_stream
Constructor Details
#initialize(source_path, session:) ⇒ FileEmitter
Returns a new instance of FileEmitter.
7 8 9 10 |
# File 'lib/kustomize/emitter/file_emitter.rb', line 7 def initialize(source_path, session:) @session = session @source_path = source_path end |
Instance Method Details
#input_emitters ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# 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 |