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

Constructor Details

#initialize(**injected_deps) ⇒ Reader

Returns a new instance of Reader.



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

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

Instance Method Details

#read(shell, env_file) ⇒ Object



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

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

#reset!Object



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

def reset!
  @@readers = {}
end

#use_reader(env_file_reader, env_file_class:) ⇒ Object



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

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