module CyberarmEngine::ModelCache

Constants

CACHE

Public Class Methods

cache_model(type, model_file, model) click to toggle source
# 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:) click to toggle source
# 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) click to toggle source
# 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