class KuberKit::EnvFileReader::Reader

Constants

ReaderNotFoundError

Public Class Methods

new(**injected_deps, &block) click to toggle source
Calls superclass method
# File lib/kuber_kit/env_file_reader/reader.rb, line 9
def initialize(**injected_deps, &block)
  super(**injected_deps)
  add_default_strategies
end

Public Instance Methods

read(shell, env_file) click to toggle source
# File lib/kuber_kit/env_file_reader/reader.rb, line 24
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!() click to toggle source
# File lib/kuber_kit/env_file_reader/reader.rb, line 32
def reset!
  @@readers = {}
end
use_reader(env_file_reader, env_file_class:) click to toggle source
# File lib/kuber_kit/env_file_reader/reader.rb, line 14
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

Private Instance Methods

add_default_strategies() click to toggle source
# File lib/kuber_kit/env_file_reader/reader.rb, line 37
def add_default_strategies
  use_reader(artifact_file, env_file_class: KuberKit::Core::EnvFiles::ArtifactFile)
  use_reader(env_group, env_file_class: KuberKit::Core::EnvFiles::EnvGroup)
end