Class: Traject::TranslationMap::Cache
- Inherits:
-
Object
- Object
- Traject::TranslationMap::Cache
- Defined in:
- lib/traject/translation_map.rb
Instance Method Summary collapse
-
#_lookup!(path) ⇒ Object
force lookup, without using cache.
-
#initialize ⇒ Cache
constructor
A new instance of Cache.
-
#lookup(path) ⇒ Object
Returns an actual Hash -- or nil if none found.
- #reset_cache! ⇒ Object
Constructor Details
#initialize ⇒ Cache
Returns a new instance of Cache.
108 109 110 |
# File 'lib/traject/translation_map.rb', line 108 def initialize @cached = Hash.new end |
Instance Method Details
#_lookup!(path) ⇒ Object
force lookup, without using cache. used by cache. Returns the actual hash. Returns nil if none found. May raise on syntax error in file being loaded.
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 |
# File 'lib/traject/translation_map.rb', line 124 def _lookup!(path) found = nil $LOAD_PATH.each do |base| rb_file = File.join( base, "translation_maps", "#{path}.rb" ) yaml_file = File.join( base, "translation_maps", "#{path}.yaml" ) prop_file = File.join(base, "translation_maps", "#{path}.properties" ) if File.exist? rb_file found = eval( File.open(rb_file).read , binding, rb_file ) break elsif File.exist? yaml_file found = YAML.load_file(yaml_file) break elsif File.exist? prop_file found = Traject::TranslationMap.read_properties(prop_file) break end end # Cached hash can't be mutated without weird consequences, let's # freeze it! found.freeze if found return found end |
#lookup(path) ⇒ Object
Returns an actual Hash -- or nil if none found.
113 114 115 116 117 118 |
# File 'lib/traject/translation_map.rb', line 113 def lookup(path) unless @cached.has_key?(path) @cached[path] = _lookup!(path) end return @cached[path] end |
#reset_cache! ⇒ Object
151 152 153 |
# File 'lib/traject/translation_map.rb', line 151 def reset_cache! @cached.clear end |