@@ -69,7 +69,11 @@ impl IgnoreCache {
69
69
70
70
71
71
fn file_lines_to_patterns < ' a , I > ( iter : I ) -> IgnorePatterns
72
- where I : Iterator < Item =& ' a str > {
72
+ where I : Iterator < Item =& ' a str >
73
+ {
74
+ let iter = iter. filter ( |el| !el. is_empty ( ) ) ;
75
+ let iter = iter. filter ( |el| !el. starts_with ( "#" ) ) ;
76
+
73
77
// Errors are currently being ignored... not a good look
74
78
IgnorePatterns :: parse_from_iter ( iter) . 0
75
79
}
@@ -89,13 +93,32 @@ mod test {
89
93
#[ test]
90
94
fn parse_some_globs ( ) {
91
95
let stuff = vec ! [ "*.mp3" , "README.md" ] ;
92
- let ( patterns, _) = IgnorePatterns :: parse_from_iter ( stuff. iter ( ) . cloned ( ) ) ;
96
+ let reals = vec ! [ "*.mp3" , "README.md" ] ;
97
+ let ( patterns, _) = IgnorePatterns :: parse_from_iter ( reals. into_iter ( ) ) ;
98
+ assert_eq ! ( patterns, file_lines_to_patterns( stuff. into_iter( ) ) ) ;
99
+ }
100
+
101
+ #[ test]
102
+ fn parse_some_comments ( ) {
103
+ let stuff = vec ! [ "*.mp3" , "# I am a comment!" , "#" , "README.md" ] ;
104
+ let reals = vec ! [ "*.mp3" , "README.md" ] ;
105
+ let ( patterns, _) = IgnorePatterns :: parse_from_iter ( reals. into_iter ( ) ) ;
93
106
assert_eq ! ( patterns, file_lines_to_patterns( stuff. into_iter( ) ) ) ;
94
107
}
95
108
109
+ #[ test]
110
+ fn parse_some_blank_lines ( ) {
111
+ let stuff = vec ! [ "*.mp3" , "" , "" , "README.md" ] ;
112
+ let reals = vec ! [ "*.mp3" , "README.md" ] ;
113
+ let ( patterns, _) = IgnorePatterns :: parse_from_iter ( reals. into_iter ( ) ) ;
114
+ assert_eq ! ( patterns, file_lines_to_patterns( stuff. into_iter( ) ) ) ;
115
+ }
116
+
117
+
118
+
96
119
97
120
#[ test]
98
- fn empty ( ) {
121
+ fn an_empty_cache_ignores_nothing ( ) {
99
122
let ignores = IgnoreCache :: default ( ) ;
100
123
assert_eq ! ( false , ignores. is_ignored( Path :: new( "/usr/bin/drinking" ) ) ) ;
101
124
assert_eq ! ( false , ignores. is_ignored( Path :: new( "target/debug/exa" ) ) ) ;
0 commit comments