Module: CyberarmEngine::ModelCache

Defined in:
lib/cyberarm_engine/model_cache.rb

Constant Summary collapse

CACHE =
{}

Class Method Summary collapse

Class Method Details

.cache_model(type, model_file, model) ⇒ Object



26
27
28
29
# File 'lib/cyberarm_engine/model_cache.rb', line 26

def self.cache_model(type, model_file, model)
  CACHE[type] = {} unless CACHE[type].is_a?(Hash)
  CACHE[type][model_file] = model
end

.find_or_cache(manifest:) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/cyberarm_engine/model_cache.rb', line 5

def self.find_or_cache(manifest:)
  model_file = manifest.file_path + "/model/#{manifest.model}"

  type = File.basename(model_file).split(".").last.to_sym

  if model = load_model_from_cache(type, model_file)
    model
  else
    model = CyberarmEngine::Model.new(file_path: model_file)
    cache_model(type, model_file, model)

    model
  end
end

.load_model_from_cache(type, model_file) ⇒ Object



20
21
22
23
24
# File 'lib/cyberarm_engine/model_cache.rb', line 20

def self.load_model_from_cache(type, model_file)
  return CACHE[type][model_file] if CACHE[type].is_a?(Hash) && (CACHE[type][model_file])

  false
end