Class: Kdep::Writer

Inherits:
Object
  • Object
show all
Defined in:
lib/kdep/writer.rb

Instance Method Summary collapse

Constructor Details

#initialize(output_dir) ⇒ Writer

Returns a new instance of Writer.



5
6
7
# File 'lib/kdep/writer.rb', line 5

def initialize(output_dir)
  @output_dir = output_dir
end

Instance Method Details

#cleanObject



9
10
11
12
# File 'lib/kdep/writer.rb', line 9

def clean
  FileUtils.rm_rf(@output_dir)
  FileUtils.mkdir_p(@output_dir)
end

#write(resource_name, content, index) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/kdep/writer.rb', line 14

def write(resource_name, content, index)
  # Skip empty/nil/whitespace-only content
  return nil if content.nil? || content.strip.empty?

  FileUtils.mkdir_p(@output_dir)

  filename = format("%02d-%s.yml", index, resource_name)
  path = File.join(@output_dir, filename)
  File.write(path, content)
  path
end

#write_suffixed(base_name, suffix, content, index) ⇒ Object

Used by Feature B (multi-ingress): one logical resource “ingress” emits N files named NN-ingress-<suffix>.yml so kubectl apply diffs them independently.



29
30
31
32
33
34
35
36
# File 'lib/kdep/writer.rb', line 29

def write_suffixed(base_name, suffix, content, index)
  return nil if content.nil? || content.strip.empty?
  FileUtils.mkdir_p(@output_dir)
  filename = format("%02d-%s-%s.yml", index, base_name, suffix)
  path = File.join(@output_dir, filename)
  File.write(path, content)
  path
end