method
find_template_paths_from_details

v6.0.0 -
Show latest stable
-
0 notes -
Class: OptimizedFileSystemResolver
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 2.3.8
- 3.0.0
- 3.0.9
- 3.1.0
- 3.2.1
- 3.2.8
- 3.2.13
- 4.0.2
- 4.1.8
- 4.2.1
- 4.2.7
- 4.2.9
- 5.0.0.1
- 5.1.7
- 5.2.3
- 6.0.0 (0)
- 6.1.3.1 (0)
- 6.1.7.7 (0)
- 7.0.0
- 7.1.3.2
- 7.1.3.4
- What's this?
find_template_paths_from_details(path, details)
private
Hide source
# File actionview/lib/action_view/template/resolver.rb, line 327 def find_template_paths_from_details(path, details) # Instead of checking for every possible path, as our other globs would # do, scan the directory for files with the right prefix. query = "#{escape_entry(File.join(@path, path))}*" regex = build_regex(path, details) Dir[query].uniq.reject do |filename| # This regex match does double duty of finding only files which match # details (instead of just matching the prefix) and also filtering for # case-insensitive file systems. !regex.match?(filename) || File.directory?(filename) end.sort_by do |filename| # Because we scanned the directory, instead of checking for files # one-by-one, they will be returned in an arbitrary order. # We can use the matches found by the regex and sort by their index in # details. match = filename.match(regex) EXTENSIONS.keys.reverse.map do |ext| if ext == :variants && details[ext] == :any match[ext].nil? ? 0 : 1 elsif match[ext].nil? # No match should be last details[ext].length else found = match[ext].to_sym details[ext].index(found) end end end end