diff --git a/src/handlebars_util.rs b/src/handlebars_util.rs new file mode 100644 index 0000000..bf3c8b8 --- /dev/null +++ b/src/handlebars_util.rs @@ -0,0 +1,13 @@ +use rocket_contrib::templates::Engines; +use handlebars::handlebars_helper; + +pub fn register_helpers(engines: &mut Engines) { + handlebars_helper!(pretty_datetime: |dt: str| { + let date = dt.trim_end_matches(|c| c != 'T').trim_end_matches('T'); + let time = dt.trim_start_matches(|c| c != 'T').trim_start_matches('T') + .trim_end_matches(|c| c != ':').trim_end_matches(':'); + format!("{} {}", date, time) + }); + + engines.handlebars.register_helper("pretty_datetime", Box::new(pretty_datetime)); +} diff --git a/src/main.rs b/src/main.rs index 7194ffb..38aafcc 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,12 +2,12 @@ mod database; mod routes; mod status_json; +mod handlebars_util; use std::{io, env}; use dotenv::dotenv; use rocket_contrib::templates::Template; use rocket_contrib::serve::StaticFiles; -use handlebars::handlebars_helper; fn main() -> io::Result<()> { dotenv().ok(); @@ -16,17 +16,8 @@ fn main() -> io::Result<()> { let sled = sled::open(db_path)?; - handlebars_helper!(pretty_datetime: |dt: str| { - let date = dt.trim_end_matches(|c| c != 'T').trim_end_matches('T'); - let time = dt.trim_start_matches(|c| c != 'T').trim_start_matches('T') - .trim_end_matches(|c| c != ':').trim_end_matches(':'); - format!("{} {}", date, time) - }); - let rocket = rocket::ignite() - .attach(Template::custom(|engines| { - engines.handlebars.register_helper("pretty_datetime", Box::new(pretty_datetime)); - })) + .attach(Template::custom(|engines| handlebars_util::register_helpers(engines))) .manage(sled) .mount("/static", StaticFiles::from("static")) .mount(