class method self.compute_and_store_digest

Ruby on Rails 4.0.13

Since v4.0.13 Last seen in v4.2.9 Private

Available in: v4.0.13 v4.1.16 v4.2.9

Signature

self.compute_and_store_digest(cache_key, name, format, finder, options)

No documentation comment.

Parameters

cache_key req
name req
format req
finder req
options req
Source
# File actionpack/lib/action_view/digestor.rb, line 24
      def compute_and_store_digest(cache_key, name, format, finder, options) # called under @@digest_monitor lock
        klass = if options[:partial] || name.include?("/_")
          # Prevent re-entry or else recursive templates will blow the stack.
          # There is no need to worry about other threads seeing the +false+ value,
          # as they will then have to wait for this thread to let go of the @@digest_monitor lock.
          pre_stored = @@cache.put_if_absent(cache_key, false).nil? # put_if_absent returns nil on insertion
          PartialDigestor
        else
          Digestor
        end

        digest = klass.new(name, format, finder, options).digest
        # Store the actual digest if config.cache_template_loading is true
        @@cache[cache_key] = stored_digest = digest if ActionView::Resolver.caching?
        digest
      ensure
        # something went wrong or ActionView::Resolver.caching? is false, make sure not to corrupt the @@cache
        @@cache.delete_pair(cache_key, false) if pre_stored && !stored_digest 
      end

Defined in actionpack/lib/action_view/digestor.rb line 24 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActionView::Digestor

Type at least 2 characters to search.

↑↓ navigate · open · esc close