def sentence(options={})
    word = options[:first_word] || self.first_word
    num_words_option = options[:words] || (3..15)
    count = Util.rand_count(num_words_option,randomizer)
    punctuation = options[:punctuation] || self.punctuation

    words = count.times.collect do
      word.tap {word = model.next_word(word,randomizer)}
    end.compact

    words = extend_trailing_preposition(Util.max(num_words_option), words)

    Util.capitalize words.compact.join(" ") + punctuation
  end
def sentence(options={})
    word = options[:first_word] || self.first_word
    num_words_option = options[:words] || (3..15)
    count = Util.rand_count(num_words_option,randomizer)
    punctuation = options[:punctuation] || self.punctuation

    words = count.times.collect do
      word.tap {word = model.next_word(word,randomizer)}
    end.compact

    words = extend_trailing_preposition(Util.max(num_words_option), words)

    Util.capitalize words.compact.join(" ") + punctuation
  end
return a random sentence

 Options:

 * :first_word => nil - the start word
 * :words => range or int - number of words in sentence
 * :punctuation => nil - punction to end the sentence with (nil == randomly selected from punctuation_distribution)