Class: KuberKit::TemplateReader::Reader

Inherits:
Object
  • Object
show all
Defined in:
lib/kuber_kit/template_reader/reader.rb

Constant Summary collapse

ReaderNotFoundError =
Class.new(KuberKit::NotFoundError)

Instance Method Summary collapse

Constructor Details

#initialize(**injected_deps) ⇒ Reader

Returns a new instance of Reader.



8
9
10
11
# File 'lib/kuber_kit/template_reader/reader.rb', line 8

def initialize(**injected_deps)
  super(injected_deps)
  add_default_strategies
end

Instance Method Details

#read(shell, template) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/kuber_kit/template_reader/reader.rb', line 23

def read(shell, template)
  reader = @@readers[template.class]

  raise ReaderNotFoundError, "Can't find reader for template #{template}" if reader.nil?

  reader.read(shell, template)
end

#reset!Object



31
32
33
# File 'lib/kuber_kit/template_reader/reader.rb', line 31

def reset!
  @@readers = {}
end

#use_reader(template_reader, template_class:) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/kuber_kit/template_reader/reader.rb', line 13

def use_reader(template_reader, template_class:)
  @@readers ||= {}

  if !template_reader.is_a?(KuberKit::TemplateReader::Strategies::Abstract)
    raise ArgumentError.new("should be an instance of KuberKit::TemplateReader::Strategies::Abstract, got: #{template_reader.inspect}")
  end

  @@readers[template_class] = template_reader
end