Ruby on Rails 5.2 - ActiveSupport::Cache

मॉड्यूल ActiveSupport :: कैश




ruby

मॉड्यूल ActiveSupport :: कैश

शामिल मॉड्यूल:
ActiveSupport :: कैश :: ConnectionPoolLike

ActiveSupport::Cache::Store दस्तावेज़ के लिए ActiveSupport::Cache::Store देखें।

स्थिरांक

UNIVERSAL_OPTIONS

इन विकल्पों का मतलब सभी कैश कार्यान्वयन के लिए कुछ है। व्यक्तिगत कैश कार्यान्वयन अतिरिक्त विकल्पों का समर्थन कर सकते हैं।

पब्लिक क्लास के तरीके

Expand_cache_key (कुंजी, नाम स्थान = nil) स्रोत दिखाएँ
# File activesupport/lib/active_support/cache.rb, line 80
def expand_cache_key(key, namespace = nil)
  expanded_cache_key = (namespace ? "#{namespace}/" : "").dup

  if prefix = ENV["RAILS_CACHE_ID"] || ENV["RAILS_APP_VERSION"]
    expanded_cache_key << "#{prefix}/"
  end

  expanded_cache_key << retrieve_cache_key(key)
  expanded_cache_key
end

key तर्क को उस कुंजी में विस्तारित करता है जिसका उपयोग कैश स्टोर के लिए किया जा सकता है। वैकल्पिक रूप से एक नेमस्पेस स्वीकार करता है, और उस नेमस्पेस के अंदर सभी कीज़ को स्कूप किया जाएगा।

यदि प्रदान किया गया key तर्क एक सरणी है, या to_a जवाब देता है, तो सरणी के प्रत्येक तत्व को पैरामीटर / कुंजी में बदल दिया जाएगा और एक कुंजी में to_a किया जाएगा। उदाहरण के लिए:

ActiveSupport::Cache.expand_cache_key([:foo, :bar])               # => "foo/bar"
ActiveSupport::Cache.expand_cache_key([:foo, :bar], "namespace")  # => "namespace/foo/bar"

key तर्क भी cache_key या to_param जवाब दे सकता है।

लुकअप_स्टोर (* store_option) स्रोत दिखाएं
# File activesupport/lib/active_support/cache.rb, line 55
def lookup_store(*store_option)
  store, *parameters = *Array.wrap(store_option).flatten

  case store
  when Symbol
    retrieve_store_class(store).new(*parameters)
  when nil
    ActiveSupport::Cache::MemoryStore.new
  else
    store
  end
end

दिए गए विकल्पों के अनुसार एक नया ActiveSupport::Cache::Store ऑब्जेक्ट बनाता है।

यदि इस विधि में कोई तर्क नहीं दिया जाता है, तो एक नया ActiveSupport::Cache::MemoryStore ऑब्जेक्ट वापस कर दिया जाएगा।

यदि आप पहले तर्क के रूप में एक Symbol पास करते हैं, तो ActiveSupport::Cache नाम स्थान के अंतर्गत एक संगत कैश स्टोर वर्ग बनाया जाएगा। उदाहरण के लिए:

ActiveSupport::Cache.lookup_store(:memory_store)
# => returns a new ActiveSupport::Cache::MemoryStore object

ActiveSupport::Cache.lookup_store(:mem_cache_store)
# => returns a new ActiveSupport::Cache::MemCacheStore object

किसी भी अतिरिक्त तर्क को इसी कैश स्टोर क्लास के कंस्ट्रक्टर के पास भेज दिया जाएगा:

ActiveSupport::Cache.lookup_store(:file_store, '/tmp/cache')
# => same as: ActiveSupport::Cache::FileStore.new('/tmp/cache')

यदि पहला तर्क एक Symbol नहीं है, तो इसे बस वापस कर दिया जाएगा:

ActiveSupport::Cache.lookup_store(MyOwnCacheStore.new)
# => returns MyOwnCacheStore.new