ohol_public_data 0.1.0

Client and data format for One Hour One Life's public data
Documentation
use chrono::NaiveDate;

pub fn build_date_str(date: NaiveDate) -> String {
  date.format("%Y_%m%B_%d_%A").to_string()
}

pub fn build_url(server_name: &str, year: i32, month: u32, day: u32) -> String {
  format!(
    "http://publicdata.onehouronelife.com/publicLifeLogData/lifeLog_{}.onehouronelife.com/{}.txt",
    server_name,
    build_date_str(NaiveDate::from_ymd(year, month, day))
  )
}

#[cfg(test)]
mod tests {
  use super::*;

  #[test]
  fn bigserver2_2019_january_30th() {
    let expected = "http://publicdata.onehouronelife.com/publicLifeLogData/lifeLog_bigserver2.onehouronelife.com/2019_01January_30_Wednesday.txt";
    assert_eq!(build_url("bigserver2", 2019, 01, 30), expected);
  }

  #[test]
  fn server15_2019_november_10th() {
    let expected = "http://publicdata.onehouronelife.com/publicLifeLogData/lifeLog_server15.onehouronelife.com/2019_11November_10_Sunday.txt";
    assert_eq!(build_url("server15", 2019, 11, 10), expected);
  }
}