faker 0.0.2

A library for generating fake data such as names, addresses, and phone numbers.
use super::helpers;

struct Name {
    first_names: Vec<String>, 
    last_names: Vec<String>, 
    prefix: Vec<String>, 
    suffix: Vec<String>,
    title: Vec<String>
}

impl Name {
    fn new(first_names: Vec<String>, last_names: Vec<String>, prefix: Vec<String>, suffix: Vec<String>, title: Vec<String>) -> Name {
        Name {first_names: first_names, last_names: last_names, prefix: prefix, suffix: suffix, title: title}
    }

    fn first_name(&self) -> String {
        helpers::array_element(self.first_names.as_slice()).to_string()
    }

    fn title(&self) -> String {
        helpers::array_element(self.title.as_slice()).to_string()
    }

    fn last_name(&self)  -> String {
        helpers::array_element(self.last_names.as_slice()).to_string()
    }

    fn prefix(&self)     -> String {
        helpers::array_element(self.prefix.as_slice()).to_string()
    }

    fn suffix(&self)     -> String {
        helpers::array_element(self.suffix.as_slice()).to_string()
    }

    fn name(&self)  -> String {
        let name = self.first_name() + " " + self.last_name();
        match helpers::number_in_range::<int>(0, 8) {
            0 => self.prefix() + " " + name,
            1 => name + " " + self.suffix(),
            _ => name
        }
    }
}

#[cfg(test)]
mod tests;