From 4ed01e03bfabb2714c9b108cc5ac9aaa06ca2327 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Thu, 22 Jul 2021 10:09:35 +0300 Subject: feat: do full text search Sponsored-by: author --- clab.md | 19 +++++++++++++++++++ src/main.rs | 3 ++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/clab.md b/clab.md index f471726..7df358e 100644 --- a/clab.md +++ b/clab.md @@ -59,6 +59,25 @@ then stdout is exactly "clab found matches:\nalice@example.com\tAlice Atherthon\ ~~~ +# Full text search + +This scenario verifies that `clab` does a full text search. + +~~~scenario +given an installed clab +given file .local/share/clab/address-book.yaml from address-book.yaml + +when I run clab search example +then command is successful +then stdout contains "Alice Atherthon" +then stdout contains "Bob" + +when I run clab search email +then command is successful +then stdout contains "Alice Atherthon" +then stdout contains "Bob" +~~~ + --- title: "clab; – command line address book" author: Lars Wirzenius diff --git a/src/main.rs b/src/main.rs index b8645d5..d5ae5c5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -46,7 +46,8 @@ struct Entry { impl Entry { fn is_match(&self, needle: &str) -> bool { - contains(&self.name, needle) + let text = serde_yaml::to_string(self).unwrap(); + contains(&text, needle) } fn emails(&self) -> Vec { -- cgit v1.2.1