1
0
mirror of https://github.com/BurntSushi/ripgrep.git synced 2025-04-14 00:58:43 +02:00

Merge pull request #238 from jacwah/refactor

`Ignore` refactorings
This commit is contained in:
Andrew Gallant 2016-11-18 23:11:17 -05:00 committed by GitHub
commit 1e6c2ac8e3
2 changed files with 13 additions and 15 deletions

View File

@ -75,7 +75,7 @@ struct IgnoreOptions {
impl IgnoreOptions { impl IgnoreOptions {
/// Returns true if at least one type of ignore rules should be matched. /// Returns true if at least one type of ignore rules should be matched.
fn should_ignores(&self) -> bool { fn has_any_ignore_options(&self) -> bool {
self.ignore || self.git_global || self.git_ignore || self.git_exclude self.ignore || self.git_global || self.git_ignore || self.git_exclude
} }
} }
@ -285,7 +285,7 @@ impl Ignore {
} }
} }
let mut whitelisted = Match::None; let mut whitelisted = Match::None;
if self.0.opts.should_ignores() { if self.0.opts.has_any_ignore_options() {
let mat = self.matched_ignore(path, is_dir); let mat = self.matched_ignore(path, is_dir);
if mat.is_ignore() { if mat.is_ignore() {
return mat; return mat;
@ -365,19 +365,8 @@ impl Ignore {
} }
let m_global = self.0.git_global_matcher.matched(&path, is_dir) let m_global = self.0.git_global_matcher.matched(&path, is_dir)
.map(IgnoreMatch::gitignore); .map(IgnoreMatch::gitignore);
if !m_ignore.is_none() {
m_ignore m_ignore.or(m_gi).or(m_gi_exclude).or(m_global).or(m_explicit)
} else if !m_gi.is_none() {
m_gi
} else if !m_gi_exclude.is_none() {
m_gi_exclude
} else if !m_global.is_none() {
m_global
} else if !m_explicit.is_none() {
m_explicit
} else {
Match::None
}
} }
/// Returns an iterator over parent ignore matchers, including this one. /// Returns an iterator over parent ignore matchers, including this one.

View File

@ -357,4 +357,13 @@ impl<T> Match<T> {
Match::Whitelist(t) => Match::Whitelist(f(t)), Match::Whitelist(t) => Match::Whitelist(f(t)),
} }
} }
/// Return the match if it is not none. Otherwise, return other.
pub fn or(self, other: Self) -> Self {
if self.is_none() {
other
} else {
self
}
}
} }