提交 35864db9 编写于 作者: A Aaron Patterson

feature detect for FNM_EXTGLOB for older Ruby. Fixes #15053

上级 7b9e0f53
......@@ -181,11 +181,7 @@ def find_templates(name, prefix, partial, details)
def query(path, details, formats)
query = build_query(path, details)
template_paths = Dir[query].reject { |filename|
File.directory?(filename) ||
# deals with case-insensitive file systems.
!File.fnmatch(query, filename, File::FNM_EXTGLOB)
}
template_paths = find_template_paths query
template_paths.map { |template|
handler, format, variant = extract_handler_and_format_and_variant(template, formats)
......@@ -200,6 +196,26 @@ def query(path, details, formats)
}
end
if File.const_defined? :FNM_EXTGLOB
def find_template_paths(query)
Dir[query].reject { |filename|
File.directory?(filename) ||
# deals with case-insensitive file systems.
!File.fnmatch(query, filename, File::FNM_EXTGLOB)
}
end
else
def find_template_paths(query)
# deals with case-insensitive file systems.
sanitizer = Hash.new { |h,dir| h[dir] = Dir["#{dir}/*"] }
Dir[query].reject { |filename|
File.directory?(filename) ||
!sanitizer[File.dirname(filename)].include?(filename)
}
end
end
# Helper for building query glob string based on resolver's pattern.
def build_query(path, details)
query = @pattern.dup
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册