Class: KuberKit::EnvFileReader::Reader

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

Constant Summary collapse

ReaderNotFoundError =
Class.new(KuberKit::NotFoundError)

Instance Method Summary collapse

Instance Method Details

#add_default_readersObject



28
29
30
# File 'lib/kuber_kit/env_file_reader/reader.rb', line 28

def add_default_readers
  use_reader(artifact_file_reader, env_file_class: KuberKit::Core::EnvFiles::ArtifactFile)
end

#read(shell, env_file) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/kuber_kit/env_file_reader/reader.rb', line 18

def read(shell, env_file)
  add_default_readers

  reader = @@readers[env_file.class]

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

  reader.read(shell, env_file)
end

#reset!Object



32
33
34
# File 'lib/kuber_kit/env_file_reader/reader.rb', line 32

def reset!
  @@readers = {}
end

#use_reader(env_file_reader, env_file_class:) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/kuber_kit/env_file_reader/reader.rb', line 8

def use_reader(env_file_reader, env_file_class:)
  @@readers ||= {}

  if !env_file_reader.is_a?(KuberKit::EnvFileReader::AbstractEnvFileReader)
    raise ArgumentError.new("should be an instance of KuberKit::EnvFileReader::AbstractEnvFileReader, got: #{env_file_reader.inspect}")
  end

  @@readers[env_file_class] = env_file_reader
end