common: Fix push::PushCondition::applies for empty value and pattern
This commit is contained in:
parent
eb7683bae9
commit
cd157885dd
@ -1,5 +1,9 @@
|
|||||||
# [unreleased]
|
# [unreleased]
|
||||||
|
|
||||||
|
Bug fixes:
|
||||||
|
|
||||||
|
* Fix `push::PushCondition::applies` for empty value and pattern
|
||||||
|
|
||||||
# 0.3.0
|
# 0.3.0
|
||||||
|
|
||||||
Breaking changes:
|
Breaking changes:
|
||||||
|
@ -198,10 +198,6 @@ impl StrExt for str {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn matches_pattern(&self, pattern: &str, match_words: bool) -> bool {
|
fn matches_pattern(&self, pattern: &str, match_words: bool) -> bool {
|
||||||
if self.is_empty() || pattern.is_empty() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
let value = &self.to_lowercase();
|
let value = &self.to_lowercase();
|
||||||
let pattern = &pattern.to_lowercase();
|
let pattern = &pattern.to_lowercase();
|
||||||
|
|
||||||
@ -213,6 +209,13 @@ impl StrExt for str {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn matches_word(&self, pattern: &str) -> bool {
|
fn matches_word(&self, pattern: &str) -> bool {
|
||||||
|
if self == pattern {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if pattern.is_empty() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
match self.find(pattern) {
|
match self.find(pattern) {
|
||||||
Some(start) => {
|
Some(start) => {
|
||||||
let end = start + pattern.len();
|
let end = start + pattern.len();
|
||||||
@ -448,6 +451,8 @@ mod tests {
|
|||||||
assert!("Foo bar".matches_pattern("foo", true));
|
assert!("Foo bar".matches_pattern("foo", true));
|
||||||
assert!(!"foobar".matches_pattern("foo", true));
|
assert!(!"foobar".matches_pattern("foo", true));
|
||||||
assert!(!"foo bar".matches_pattern("foo*", true));
|
assert!(!"foo bar".matches_pattern("foo*", true));
|
||||||
|
assert!("".matches_pattern("", true));
|
||||||
|
assert!(!"foo".matches_pattern("", true));
|
||||||
|
|
||||||
// Glob matching
|
// Glob matching
|
||||||
assert!(!"foo bar".matches_pattern("foo", false));
|
assert!(!"foo bar".matches_pattern("foo", false));
|
||||||
@ -458,6 +463,9 @@ mod tests {
|
|||||||
assert!(!"foo".matches_pattern("foo?", false));
|
assert!(!"foo".matches_pattern("foo?", false));
|
||||||
assert!("foo".matches_pattern("fo?", false));
|
assert!("foo".matches_pattern("fo?", false));
|
||||||
assert!("FOO".matches_pattern("foo", false));
|
assert!("FOO".matches_pattern("foo", false));
|
||||||
|
assert!("".matches_pattern("", false));
|
||||||
|
assert!("".matches_pattern("*", false));
|
||||||
|
assert!(!"foo".matches_pattern("", false));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user