Class: KuberKit::Core::ServiceStore
- Defined in:
- lib/kuber_kit/core/service_store.rb
Constant Summary collapse
Instance Method Summary collapse
- #add_definition(service_definition) ⇒ Object
- #all_definitions ⇒ Object
- #count ⇒ Object
- #define(service_name) ⇒ Object
- #exists?(service_name) ⇒ Boolean
- #get_definition(service_name) ⇒ Object
- #get_service(service_name) ⇒ Object
- #load_definition(file_path) ⇒ Object
- #load_definitions(dir_path) ⇒ Object
- #reset! ⇒ Object
Instance Method Details
#add_definition(service_definition) ⇒ Object
18 19 20 21 22 23 24 25 26 |
# File 'lib/kuber_kit/core/service_store.rb', line 18 def add_definition(service_definition) @@service_definitions ||= {} unless @@service_definitions[service_definition.service_name].nil? raise AlreadyAddedError, "service #{service_definition.service_name} was already added" end @@service_definitions[service_definition.service_name] = service_definition end |
#all_definitions ⇒ Object
63 64 65 |
# File 'lib/kuber_kit/core/service_store.rb', line 63 def all_definitions @@service_definitions ||= {} end |
#count ⇒ Object
67 68 69 |
# File 'lib/kuber_kit/core/service_store.rb', line 67 def count all_definitions.count end |
#define(service_name) ⇒ Object
12 13 14 15 16 |
# File 'lib/kuber_kit/core/service_store.rb', line 12 def define(service_name) definition = service_definition_factory.create(service_name) add_definition(definition) definition end |
#exists?(service_name) ⇒ Boolean
71 72 73 |
# File 'lib/kuber_kit/core/service_store.rb', line 71 def exists?(service_name) !all_definitions[service_name].nil? end |
#get_definition(service_name) ⇒ Object
29 30 31 32 33 34 35 36 37 |
# File 'lib/kuber_kit/core/service_store.rb', line 29 def get_definition(service_name) @@service_definitions ||= {} if @@service_definitions[service_name].nil? raise NotFoundError, "service '#{service_name}' not found" end @@service_definitions[service_name] end |
#get_service(service_name) ⇒ Object
40 41 42 43 44 |
# File 'lib/kuber_kit/core/service_store.rb', line 40 def get_service(service_name) definition = get_definition(service_name) service_factory.create(definition) end |
#load_definition(file_path) ⇒ Object
55 56 57 |
# File 'lib/kuber_kit/core/service_store.rb', line 55 def load_definition(file_path) require(file_path) end |
#load_definitions(dir_path) ⇒ Object
46 47 48 49 50 51 52 53 |
# File 'lib/kuber_kit/core/service_store.rb', line 46 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 |
#reset! ⇒ Object
59 60 61 |
# File 'lib/kuber_kit/core/service_store.rb', line 59 def reset! @@service_definitions = {} end |