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