class ActionView::LookupContext

:nodoc:
this key is generated just once during the request, it speeds up all cache accesses.
generate a key, given to view paths, used in the resolver cache lookup. Since
templates, i.e. view paths and details. The LookupContext is also responsible to
LookupContext is the object responsible to hold all information required to lookup
= Action View Lookup Context

def self.register_detail(name, options = {}, &block)

def self.register_detail(name, options = {}, &block)
  self.registered_details << name
  self.registered_detail_setters << [name, "#{name}="]
  Accessors.send :define_method, :"_#{name}_defaults", &block
  Accessors.module_eval <<-METHOD, __FILE__, __LINE__ + 1
    def #{name}
      @details[:#{name}]
    end
    def #{name}=(value)
      value = Array.wrap(value.presence || _#{name}_defaults)
      _set_detail(:#{name}, value) if value != @details[:#{name}]
    end
  METHOD
end

def initialize(view_paths, details = {})

def initialize(view_paths, details = {})
  @details, @details_key = { :handlers => default_handlers }, nil
  @frozen_formats, @skip_default_locale = false, false
  self.view_paths = view_paths
  self.registered_detail_setters.each do |key, setter|
    send(setter, details[key])
  end
end