Better config API
This commit is contained in:
parent
38a44e2773
commit
e152b73c51
4 changed files with 12 additions and 11 deletions
|
@ -1,11 +1,12 @@
|
||||||
//! Support for compile-time configuration options
|
//! Support for compile-time configuration options
|
||||||
|
|
||||||
|
use std::sync::{Arc, Mutex};
|
||||||
use once_cell::sync::Lazy;
|
use once_cell::sync::Lazy;
|
||||||
|
|
||||||
/// Part of the ProdID string that describes the organization (example of a ProdID string: `-//ABC Corporation//My Product//EN`)
|
/// Part of the ProdID string that describes the organization (example of a ProdID string: `-//ABC Corporation//My Product//EN`).
|
||||||
/// You can override it at compile-time with the `KITCHEN_FRIDGE_ICAL_ORG_NAME` environment variable, or keep the default value
|
/// Feel free to override it when initing this library.
|
||||||
pub static ORG_NAME: Lazy<String> = Lazy::new(|| option_env!("KITCHEN_FRIDGE_ICAL_ORG_NAME").unwrap_or("My organization").to_string() );
|
pub static ORG_NAME: Lazy<Arc<Mutex<String>>> = Lazy::new(|| Arc::new(Mutex::new("My organization".to_string())));
|
||||||
|
|
||||||
/// Part of the ProdID string that describes the product name (example of a ProdID string: `-//ABC Corporation//My Product//EN`)
|
/// Part of the ProdID string that describes the product name (example of a ProdID string: `-//ABC Corporation//My Product//EN`).
|
||||||
/// You can override it at compile-time with the `KITCHEN_FRIDGE_ICAL_PRODUCT_NAME` environment variable, or keep the default value
|
/// Feel free to override it when initing this library.
|
||||||
pub static PRODUCT_NAME: Lazy<String> = Lazy::new(|| option_env!("KITCHEN_FRIDGE_ICAL_PRODUCT_NAME").unwrap_or("KitchenFridge").to_string() );
|
pub static PRODUCT_NAME: Lazy<Arc<Mutex<String>>> = Lazy::new(|| Arc::new(Mutex::new("KitchenFridge".to_string())));
|
||||||
|
|
|
@ -104,7 +104,7 @@ mod tests {
|
||||||
COMPLETED:{}\r\n\
|
COMPLETED:{}\r\n\
|
||||||
STATUS:COMPLETED\r\n\
|
STATUS:COMPLETED\r\n\
|
||||||
END:VTODO\r\n\
|
END:VTODO\r\n\
|
||||||
END:VCALENDAR\r\n", *ORG_NAME, *PRODUCT_NAME, uid, s_now, s_now, s_now, s_now);
|
END:VCALENDAR\r\n", ORG_NAME.lock().unwrap(), PRODUCT_NAME.lock().unwrap(), uid, s_now, s_now, s_now, s_now);
|
||||||
|
|
||||||
assert_eq!(ical, expected_ical);
|
assert_eq!(ical, expected_ical);
|
||||||
}
|
}
|
||||||
|
@ -124,7 +124,7 @@ mod tests {
|
||||||
SUMMARY:This is a task with ÜTF-8 characters\r\n\
|
SUMMARY:This is a task with ÜTF-8 characters\r\n\
|
||||||
STATUS:NEEDS-ACTION\r\n\
|
STATUS:NEEDS-ACTION\r\n\
|
||||||
END:VTODO\r\n\
|
END:VTODO\r\n\
|
||||||
END:VCALENDAR\r\n", *ORG_NAME, *PRODUCT_NAME, uid, s_now, s_now, s_now);
|
END:VCALENDAR\r\n", ORG_NAME.lock().unwrap(), PRODUCT_NAME.lock().unwrap(), uid, s_now, s_now, s_now);
|
||||||
|
|
||||||
assert_eq!(ical, expected_ical);
|
assert_eq!(ical, expected_ical);
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ pub use builder::build_from;
|
||||||
use crate::config::{ORG_NAME, PRODUCT_NAME};
|
use crate::config::{ORG_NAME, PRODUCT_NAME};
|
||||||
|
|
||||||
pub fn default_prod_id() -> String {
|
pub fn default_prod_id() -> String {
|
||||||
format!("-//{}//{}//EN", *ORG_NAME, *PRODUCT_NAME)
|
format!("-//{}//{}//EN", ORG_NAME.lock().unwrap(), PRODUCT_NAME.lock().unwrap())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -22,9 +22,9 @@
|
||||||
//! See example usage in the `examples/` folder, that you can run using `cargo run --example <example-name>`. \
|
//! See example usage in the `examples/` folder, that you can run using `cargo run --example <example-name>`. \
|
||||||
//! You can also have a look at `tasklist`, a GUI app that uses `kitchen-fridge` under the hood.
|
//! You can also have a look at `tasklist`, a GUI app that uses `kitchen-fridge` under the hood.
|
||||||
//!
|
//!
|
||||||
//! ## Compile-time configuration options
|
//! ## Configuration options
|
||||||
//!
|
//!
|
||||||
//! Have a look at the [`config`] module to see what options can be overridden at compile-time.
|
//! Have a look at the [`config`] module to see what default options can be overridden.
|
||||||
|
|
||||||
pub mod traits;
|
pub mod traits;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue