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