Sha256: 947b34e4aee5b855e8be2a7806f8701d9a2146452d72f7e1f564e1f95ff9b733

Contents?: true

Size: 1.4 KB

Versions: 23

Compression:

Stored size: 1.4 KB

Contents

class KuberKit::Core::ServiceStore
  include KuberKit::Import[
    "core.service_factory",
    "core.service_definition_factory",
    "shell.local_shell",
    "tools.logger"
  ]

  def define(service_name)
    definition = service_definition_factory.create(service_name)
    add_definition(definition)
    definition
  end

  def add_definition(service_definition)
    definitions_store.add(service_definition.service_name, service_definition)
  end

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

  Contract Symbol => Any
  def get_service(service_name)
    definition = get_definition(service_name)

    service_factory.create(definition)
  end

  def load_definitions(dir_path)
    files = local_shell.recursive_list_files(dir_path, name: "*.rb").each do |path|
      load_definition(path)
    end
  rescue KuberKit::Shell::AbstractShell::DirNotFoundError
    logger.warn("Directory with services 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 all_definitions
    definitions_store.items
  end

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

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

Version data entries

23 entries across 23 versions & 1 rubygems

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