Sha256: 7f5d09dc7cc4673b1fb6f532961f4b6cb89ea89e7dc13915ff9d820ef4396d90

Contents?: true

Size: 1.5 KB

Versions: 23

Compression:

Stored size: 1.5 KB

Contents

class KuberKit::Core::ConfigurationStore
  include KuberKit::Import[
    "core.configuration_factory",
    "core.configuration_definition_factory",
    "shell.local_shell",
    "tools.logger"
  ]

  def define(configuration_name)
    definition = configuration_definition_factory.create(configuration_name)
    add_definition(definition)
    definition
  end

  def add_definition(configuration_definition)
    definitions_store.add(configuration_definition.configuration_name, configuration_definition)
  end

  Contract Symbol => Any
  def get_definition(configuration_name)
    definitions_store.get(configuration_name)
  end

  Contract Symbol => Any
  def get_configuration(configuration_name)
    definition = get_definition(configuration_name)

    configuration_factory.create(definition)
  end

  def load_definitions(dir_path)
    files = local_shell.recursive_list_files(dir_path).each do |path|
      load_definition(path)
    end
  rescue KuberKit::Shell::AbstractShell::DirNotFoundError
    logger.warn("Directory with configurations not found: #{dir_path}")
    []
  end

  def load_definition(file_path)
    require(file_path)
  end

  def reset!
    definitions_store.reset!
  end

  def count
    definitions_store.size
  end

  def exists?(configuration_name)
    definitions_store.exists?(configuration_name)
  end

  def all_definitions
    definitions_store.items
  end

  private
    def definitions_store
      @@definitions_store ||= KuberKit::Core::Store.new(KuberKit::Core::ConfigurationDefinition)
    end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
kuber_kit-0.3.11 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.3.10 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.3.9 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.3.8 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.3.7 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.3.6 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.3.5 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.3.4 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.3.3 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.3.2 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.3.1 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.3.0 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.2.9 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.2.8 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.2.7 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.2.6 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.2.5 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.2.4 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.2.3 lib/kuber_kit/core/configuration_store.rb
kuber_kit-0.2.2 lib/kuber_kit/core/configuration_store.rb