Skip to content

Commit 7b5b02d

Browse files
committed
Extract function for parsing an ignore file
1 parent 1f23f3f commit 7b5b02d

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

src/fs/feature/ignore.rs

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ impl IgnoreCache {
3939

4040
match file.read_to_string(&mut contents) {
4141
Ok(_) => {
42-
let (patterns, mut _errors) = IgnorePatterns::parse_from_iter(contents.lines());
42+
let patterns = file_lines_to_patterns(contents.lines());
4343
entries.push((p.into(), patterns));
4444
}
4545
Err(e) => debug!("Failed to read a .gitignore: {:?}", e)
@@ -68,10 +68,32 @@ impl IgnoreCache {
6868
}
6969

7070

71+
fn file_lines_to_patterns<'a, I>(iter: I) -> IgnorePatterns
72+
where I: Iterator<Item=&'a str> {
73+
// Errors are currently being ignored... not a good look
74+
IgnorePatterns::parse_from_iter(iter).0
75+
}
76+
77+
7178
#[cfg(test)]
7279
mod test {
7380
use super::*;
7481

82+
#[test]
83+
fn parse_nothing() {
84+
use std::iter::empty;
85+
let (patterns, _) = IgnorePatterns::parse_from_iter(empty());
86+
assert_eq!(patterns, file_lines_to_patterns(empty()));
87+
}
88+
89+
#[test]
90+
fn parse_some_globs() {
91+
let stuff = vec![ "*.mp3", "README.md" ];
92+
let (patterns, _) = IgnorePatterns::parse_from_iter(stuff.iter().cloned());
93+
assert_eq!(patterns, file_lines_to_patterns(stuff.into_iter()));
94+
}
95+
96+
7597
#[test]
7698
fn empty() {
7799
let ignores = IgnoreCache::default();

0 commit comments

Comments
 (0)