Class: Mbeditor::FileTreeService
- Inherits:
-
Object
- Object
- Mbeditor::FileTreeService
- Defined in:
- app/services/mbeditor/file_tree_service.rb
Class Method Summary collapse
Class Method Details
.build(workspace_root) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/services/mbeditor/file_tree_service.rb', line 8 def self.build(workspace_root) root = workspace_root.to_s MUTEX.synchronize do @cache ||= {} entry = @cache[root] if entry && (Process.clock_gettime(Process::CLOCK_MONOTONIC) - entry[:ts]) < 15 return entry[:data] end end matcher = ExclusionMatcher.new(Mbeditor.configuration.excluded_paths) data = traverse(root, root, matcher) MUTEX.synchronize do @cache ||= {} @cache[root] = { ts: Process.clock_gettime(Process::CLOCK_MONOTONIC), data: data } end data end |
.invalidate(workspace_root) ⇒ Object
29 30 31 32 33 34 35 |
# File 'app/services/mbeditor/file_tree_service.rb', line 29 def self.invalidate(workspace_root) MUTEX.synchronize do @cache ||= {} @cache.delete(workspace_root.to_s) end nil end |
.reset! ⇒ Object
37 38 39 40 |
# File 'app/services/mbeditor/file_tree_service.rb', line 37 def self.reset! MUTEX.synchronize { @cache = {} } nil end |