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
61 62 63 |
# File 'lib/kuber_kit/core/service_store.rb', line 61 def all_definitions @@service_definitions ||= {} end |
#count ⇒ Object
65 66 67 |
# File 'lib/kuber_kit/core/service_store.rb', line 65 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
69 70 71 |
# File 'lib/kuber_kit/core/service_store.rb', line 69 def exists?(service_name) !all_definitions[service_name].nil? end |
#get_definition(service_name) ⇒ Object
28 29 30 31 32 33 34 35 36 |
# File 'lib/kuber_kit/core/service_store.rb', line 28 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
38 39 40 41 42 |
# File 'lib/kuber_kit/core/service_store.rb', line 38 def get_service(service_name) definition = get_definition(service_name) service_factory.create(definition) end |
#load_definition(file_path) ⇒ Object
53 54 55 |
# File 'lib/kuber_kit/core/service_store.rb', line 53 def load_definition(file_path) require(file_path) end |
#load_definitions(dir_path) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/kuber_kit/core/service_store.rb', line 44 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
57 58 59 |
# File 'lib/kuber_kit/core/service_store.rb', line 57 def reset! @@service_definitions = {} end |