faker 0.0.2

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

struct Lorem {lorem: Vec<String>}

impl Lorem {
    fn new(lorem : Vec<String>) -> Lorem {
        Lorem {lorem: lorem}
    }

    fn word(&self) -> String {
        self.words(1).connect("")
    }

    fn words(&self, num: uint) -> Vec<String> {
        helpers::shuffle(self.lorem.as_slice()).slice(0, num).to_vec()
    }

    fn sentence(&self, word_count: uint, range: uint) -> String {
        self.words(word_count + helpers::number_in_range(0, range)).connect(" ")
    }

    fn sentences(&self, sentence_count: uint) -> String {
        let mut sentences = Vec::new();
        for _ in range(0, sentence_count) {
            sentences.push(self.sentence(7, 3));
        }
        sentences.connect("\n")
    }

    fn paragraph(&self, sentence_count: uint) -> String {
        self.sentences(sentence_count + helpers::number_in_range(0, 3))
    }

    fn paragraphs(&self, paragraph_count: uint) -> String {
        let mut paragraphs = Vec::new();
        for _ in range(0, paragraph_count) {
            paragraphs.push(self.paragraph(3));
        }
        paragraphs.connect("\n \r\t")
    }
}

#[cfg(test)]
mod tests;