module ActionView::LookupContext::ViewPaths
def args_for_lookup(name, prefix, partial) #:nodoc:
def args_for_lookup(name, prefix, partial) #:nodoc: name, prefix = normalize_name(name, prefix) [name, prefix, partial || false, @details, details_key] end
def default_handlers #:nodoc:
def default_handlers #:nodoc: @@default_handlers ||= Template::Handlers.extensions end
def exists?(name, prefix = nil, partial = false)
def exists?(name, prefix = nil, partial = false) @view_paths.exists?(*args_for_lookup(name, prefix, partial)) end
def find(name, prefix = nil, partial = false)
def find(name, prefix = nil, partial = false) @view_paths.find(*args_for_lookup(name, prefix, partial)) end
def find_all(name, prefix = nil, partial = false)
def find_all(name, prefix = nil, partial = false) @view_paths.find_all(*args_for_lookup(name, prefix, partial)) end
def handlers_regexp #:nodoc:
def handlers_regexp #:nodoc: @@handlers_regexp ||= /\.(?:#{default_handlers.join('|')})$/ end
def normalize_name(name, prefix) #:nodoc:
name instead of the prefix.
as well as incorrectly putting part of the path in the template
Support legacy foo.erb names even though we now ignore .erb
def normalize_name(name, prefix) #:nodoc: name = name.to_s.gsub(handlers_regexp, '') parts = name.split('/') return parts.pop, [prefix, *parts].compact.join("/") end
def view_paths=(paths)
Whenever setting view paths, makes a copy so we can manipulate then in
def view_paths=(paths) @view_paths = ActionView::Base.process_view_paths(paths) end
def with_fallbacks
def with_fallbacks added_resolvers = 0 self.class.fallbacks.each do |resolver| next if view_paths.include?(resolver) view_paths.push(resolver) added_resolvers += 1 end yield ensure added_resolvers.times { view_paths.pop } end