Class: KuberKit::Core::Registries::RegistryStore

Inherits:
Object
  • Object
show all
Defined in:
lib/kuber_kit/core/registries/registry_store.rb

Constant Summary collapse

NotFoundError =
Class.new(KuberKit::NotFoundError)
AlreadyAddedError =
Class.new(KuberKit::Error)

Instance Method Summary collapse

Instance Method Details

#add(registry) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/kuber_kit/core/registries/registry_store.rb', line 5

def add(registry)
  @@registries ||= {}

  if !registry.is_a?(KuberKit::Core::Registries::AbstractRegistry)
    raise ArgumentError.new("should be an instance of KuberKit::Core::Registries::AbstractRegistry, got: #{registry.inspect}")
  end

  unless @@registries[registry.name].nil?
    raise AlreadyAddedError, "registry #{registry.name} was already added"
  end

  @@registries[registry.name] = registry
end

#default_registryObject



42
43
44
# File 'lib/kuber_kit/core/registries/registry_store.rb', line 42

def default_registry
  @default_registry ||= KuberKit::Core::Registries::Registry.new(:default)
end

#get(registry_name) ⇒ Object



19
20
21
22
23
24
# File 'lib/kuber_kit/core/registries/registry_store.rb', line 19

def get(registry_name)
  registry = get_from_configuration(registry_name) || 
             get_global(registry_name)

  registry
end

#get_from_configuration(registry_name) ⇒ Object



37
38
39
40
# File 'lib/kuber_kit/core/registries/registry_store.rb', line 37

def get_from_configuration(registry_name)
  registries = KuberKit.current_configuration.registries
  registries[registry_name]
end

#get_global(registry_name) ⇒ Object



26
27
28
29
30
31
32
33
34
35
# File 'lib/kuber_kit/core/registries/registry_store.rb', line 26

def get_global(registry_name)
  @@registries ||= {}
  registry = @@registries[registry_name]

  if registry.nil?
    raise NotFoundError, "registry '#{registry_name}' not found"
  end
  
  registry
end

#reset!Object



46
47
48
# File 'lib/kuber_kit/core/registries/registry_store.rb', line 46

def reset!
  @@registries = {}
end