class Nucleon::Util::Cache
Public Class Methods
new(root_path, id, cache_dir = '.cache', force = true)
click to toggle source
Calls superclass method
Nucleon::Core::new
# File lib/core/util/cache.rb 16 def initialize(root_path, id, cache_dir = '.cache', force = true) 17 super({}, {}, force) 18 19 @cache_dir = cache_dir 20 @cache_root = File.join(root_path, cache_dir) 21 FileUtils.mkdir_p(base_path) unless File.directory?(base_path) 22 23 @cache_id = id.to_sym 24 @cache_translator = Nucleon.type_default(:nucleon, :translator) 25 @cache_filename = "#{id}.#{translator}" 26 @cache_path = File.join(@cache_root, @cache_filename) 27 28 unless File.exist?(file) 29 parser = Nucleon.translator({}, translator) 30 Disk.write(file, parser.generate({})) 31 end 32 load 33 end
Public Instance Methods
base_path()
click to toggle source
# File lib/core/util/cache.rb 44 def base_path 45 @cache_root 46 end
clear()
click to toggle source
Calls superclass method
Nucleon::Config#clear
# File lib/core/util/cache.rb 103 def clear 104 result = super 105 save if initialized? 106 result 107 end
delete(keys, default = nil)
click to toggle source
Calls superclass method
Nucleon::Config#delete
# File lib/core/util/cache.rb 95 def delete(keys, default = nil) 96 result = super 97 save if initialized? 98 result 99 end
directory_name()
click to toggle source
# File lib/core/util/cache.rb 50 def directory_name 51 @cache_dir 52 end
file()
click to toggle source
# File lib/core/util/cache.rb 68 def file 69 @cache_path 70 end
get(keys, default = nil, format = false)
click to toggle source
Calls superclass method
Nucleon::Config#get
# File lib/core/util/cache.rb 74 def get(keys, default = nil, format = false) 75 result = super(keys, nil) 76 77 if result.nil? 78 load 79 result = super(keys, nil) 80 end 81 result = filter(default, format) if result.nil? 82 result 83 end
id()
click to toggle source
# File lib/core/util/cache.rb 56 def id 57 @cache_id 58 end
import_base(properties, options = {})
click to toggle source
Calls superclass method
Nucleon::Config#import_base
# File lib/core/util/cache.rb 112 def import_base(properties, options = {}) 113 config = Config.ensure(options) 114 115 result = super 116 save if initialized? && ! config.get(:no_save, false) 117 result 118 end
load()
click to toggle source
# File lib/core/util/cache.rb 122 def load 123 success = false 124 @status = 255 125 126 @@cache_lock.synchronize do 127 logger.info("Loading #{translator} translated cache from #{file}") 128 129 parser = Nucleon.translator({}, translator) 130 raw = Disk.read(file) 131 132 if parser && raw && ! raw.empty? 133 logger.debug("Cache file contents: #{raw}") 134 parse_properties = Data.hash(parser.parse(raw)) 135 136 Nucleon.remove_plugin(parser) 137 138 import(parse_properties, { :no_save => true }) unless parse_properties.empty? 139 success = true 140 @status = Nucleon.code.success 141 end 142 end 143 success 144 end
save()
click to toggle source
# File lib/core/util/cache.rb 148 def save 149 success = false 150 @status = 255 151 152 @@cache_lock.synchronize do 153 if renderer = Nucleon.translator({}, translator) 154 rendering = renderer.generate(export) 155 156 Nucleon.remove_plugin(renderer) 157 158 if Disk.write(file, rendering) 159 success = true 160 @status = Nucleon.code.success 161 end 162 end 163 end 164 success 165 end
set(keys, value, delete_nil = false)
click to toggle source
Calls superclass method
Nucleon::Config#set
# File lib/core/util/cache.rb 87 def set(keys, value, delete_nil = false) 88 result = super 89 save if initialized? 90 result 91 end
status()
click to toggle source
# File lib/core/util/cache.rb 38 def status 39 @status 40 end
translator()
click to toggle source
# File lib/core/util/cache.rb 62 def translator 63 @cache_translator 64 end