class Object

Public Instance Methods

conjugateFR(query, renderer) click to toggle source

Conjugates French Verbs @param query [Array] The query list. Can be null, in which presets are used. @param renderer [Renderer] The Renderer to use.

# File lib/conjugatefr.rb, line 8
def conjugateFR (query, renderer)
  # cpwords - Copy/Pasted words list from the website.
  cpwords = "accroître  acheter  acquérir acquiescer
  alléger       aller apercevoir      appeler
  apprendre     arguer      arrêter      asseoir
  astreindre    avoir      battre       boire
  bouillir      briller      céder        changer
  chanter       circoncire    commencer  compléter
  conclure      conduire     confire     confondre
  connaître     construire  coudre   courir
  craindre      créer        croire croître
  cueillir      défaillir    déléguer   dépecer
  devoir        dire   disséquer dissoudre
  distinguer    distraire  dormir   écrire
  employer      ennuyer      enseigner    entendre
  envoyer       espérer       essayer       essuyer
  être  faire    falloir    finir
  fuir  geler    grasseyer  interdire
  interpeller   jeter     joindre     lancer
  lever lire    louer      luire
  manger        marquer        maudire        mener
  mentir        mettre mordre  moudre
  mouiller      mourir       mouvoir       naître
  naviguer      nettoyer     nuire       offrir
  oublier       ouvrir        pallier        paraître
  partir        payer  peindre  peler
  perdre        peser  plaire   pleuvoir
  pourvoir      pouvoir      prendre      prévoir
  prier promouvoir      rapiécer     recevoir
  régner        remuer répandre        répondre
  résoudre      réveiller    rire       rompre
  savoir        semer  sentir   servir
  signer        sortir souffrir        suffire
  suivre        surseoir       taire tenir
  tomber        tordre traire  travailler
  tressaillir   vaincre   valoir    vendre
  venir vêtir   vivre     voir
  vouloir"

  # Generate word arrays from above list.
  words = cpwords.gsub(/[ \t\n]+/, " ").split " "

  # Fall back to presets
  toqry = if query.empty?
    words
  else
    query
  end

  # Filter out all of the accented words.
  toqry_filtered = toqry.map { |word| word.gsub(/[êé]/, "e").gsub /î/, "i" }

  # Render pre-word content.
  renderer.pre

  # Query each word.
  toqry_filtered.each_with_index do |word, index|
    open "http://conjf.cactus2000.de/showverb.en.php?verb=#{word}" do |page|
      # Split the conjugations into an array.
      doc = Nokogiri::HTML page
      arr = doc.css("td [width='50%']").css("div").to_s.gsub(/.*?<div>/im, "").split("<br>")
      arr.pop

      # Render this word.
      renderer.word toqry[index], arr
    end
  end

  # Render post-word content.
  renderer.post
end