module Wordz::PostProcessor

Constants

NO_SPACE_BEFORE
POST_PROCESSED_PHRASES

Private Instance Methods

indefinite_article(phrase_list, i) click to toggle source
# File lib/wordz/post_processor.rb, line 14
def indefinite_article(phrase_list, i)
  next_phrase = phrase_list[i + 1]
  vowel_initial?(next_phrase) ? "an" : "a"
end
post_process(phrase_list) click to toggle source
# File lib/wordz/post_processor.rb, line 10
def post_process(phrase_list)
  sentence_join(replace_ppps(phrase_list))
end
replace_ppps(phrase_list) click to toggle source
# File lib/wordz/post_processor.rb, line 19
def replace_ppps(phrase_list)
  phrase_list.each_with_index.map do |phrase, i|
    method_name = POST_PROCESSED_PHRASES[phrase]
    method_name ? send(method_name, phrase_list, i) : phrase
  end
end
sentence_join(phrase_list) click to toggle source
# File lib/wordz/post_processor.rb, line 26
def sentence_join(phrase_list)
  phrase_list.reduce("") do |accum_text, phrase|
    prefix = NO_SPACE_BEFORE.include?(phrase) ? "" : " "
    accum_text << (prefix + phrase)
  end.strip.squeeze(" ")
end
vowel_initial?(str) click to toggle source
# File lib/wordz/post_processor.rb, line 33
def vowel_initial?(str)
  str[0] =~ /[aeiou]/i
end