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

Instance Method Details

#read(shell, template) ⇒ Object



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

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

#use_reader(template_reader, template_class:) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/kuber_kit/template_reader/reader.rb', line 4

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