class Pascoale::Reflector

Public Class Methods

new(text) click to toggle source
# File lib/pascoale/reflector.rb, line 6
def initialize(text)
  @text = text
end

Public Instance Methods

oxytone?() click to toggle source

Accents or specific terminators

# File lib/pascoale/reflector.rb, line 22
def oxytone?
  return true if separated.size == 1
  return true if separated[-1] =~ /[#{ACCENTED}]/
  return false if separated[-2] =~ /[#{ACCENTED}]/
  return false  if separated[-3] =~ /[#{ACCENTED}]/
  separated[-1] =~ /(is?|im|ins?|us?|um|uns?|l|n|r|x|ps|ãs?|ãos?|ons?|ais?|eis?|ois?|aus?|eus?|ous?|ias?|ies?|ios?|uas?|ues?|uos?)$/
end
paroxytone?() click to toggle source

Most common case in portuguese

# File lib/pascoale/reflector.rb, line 17
def paroxytone?
  !proparoxytone? && !oxytone?
end
proparoxytone?() click to toggle source

ALWAYS have accents

# File lib/pascoale/reflector.rb, line 11
def proparoxytone?
  return false if separated.size < 3
  separated[-3] =~ /[#{ACCENTED}]/
end
syllable_index() click to toggle source
# File lib/pascoale/reflector.rb, line 30
def syllable_index
  return -1 if oxytone?
  return -2 if paroxytone?
  return -3 if proparoxytone?
  # Shoud never happen because defaut is paroxytone
  raise "Can't understand word"
end

Private Instance Methods

separated() click to toggle source
# File lib/pascoale/reflector.rb, line 40
def separated
  @separated ||= SyllableSeparator.new(@text).separate
end