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

#read(shell, env_file) ⇒ Object



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

def read(shell, env_file)
  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

#use_reader(env_file_reader, env_file_class:) ⇒ Object



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

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

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

  @@readers[env_file_class] = env_file_reader
end