class PhraseApp::InContextEditor::KeyNamesCache
Attributes
api_wrapper[R]
Public Class Methods
new(api_wrapper)
click to toggle source
# File lib/phraseapp-in-context-editor-ruby/key_names_cache.rb, line 6 def initialize(api_wrapper) @api_wrapper = api_wrapper end
Public Instance Methods
pre_cached(key_names)
click to toggle source
# File lib/phraseapp-in-context-editor-ruby/key_names_cache.rb, line 10 def pre_cached(key_names) unless cache.cached?(:translation_key_names) cache.set(:translation_key_names, prefetched_key_names) end return key_names.select { |key_name| key_name_precached?(key_name) } end
pre_fetched(key_names)
click to toggle source
# File lib/phraseapp-in-context-editor-ruby/key_names_cache.rb, line 18 def pre_fetched(key_names) key_names.select { |key_name| covered_by_initial_caching?(key_name) } end
Private Instance Methods
cache()
click to toggle source
# File lib/phraseapp-in-context-editor-ruby/key_names_cache.rb, line 48 def cache RequestStore.store[:phraseapp_cache] ||= PhraseApp::InContextEditor::Cache.new end
covered_by_initial_caching?(key_name)
click to toggle source
# File lib/phraseapp-in-context-editor-ruby/key_names_cache.rb, line 34 def covered_by_initial_caching?(key_name) key_name.start_with?(*PhraseApp::InContextEditor.cache_key_segments_initial) end
key_name_is_in_cache?(key_name)
click to toggle source
# File lib/phraseapp-in-context-editor-ruby/key_names_cache.rb, line 38 def key_name_is_in_cache?(key_name) cache.get(:translation_key_names).include?(key_name) end
key_name_precached?(key_name)
click to toggle source
# File lib/phraseapp-in-context-editor-ruby/key_names_cache.rb, line 42 def key_name_precached?(key_name) covered = covered_by_initial_caching?(key_name) in_cache = key_name_is_in_cache?(key_name) return covered && in_cache end
prefetched_key_names()
click to toggle source
# File lib/phraseapp-in-context-editor-ruby/key_names_cache.rb, line 24 def prefetched_key_names prefetched = Set.new PhraseApp::InContextEditor.cache_key_segments_initial.each do |prefix| api_wrapper.keys_with_prefix(prefix).each do |key| prefetched.add(key.name) end end prefetched end