Sha256: daa1881646bd5737868ea395576a97ea7f9702ca26548e6e9c3f346dbe474c44

Contents?: true

Size: 866 Bytes

Versions: 1

Compression:

Stored size: 866 Bytes

Contents

# coding: utf-8
module Pascoale
  class Reflector
    include Constants

    def initialize(text)
      @text = text
    end

    # ALWAYS have accents
    def proparoxytone?
      return false if separated.size < 3
      separated[-3] =~ /[#{ACCENTED}]/
    end

    # Most common case in portuguese
    def paroxytone?
      return false if separated.size < 2
      return true if separated[-2] =~ /[#{ACCENTED}]/
      !proparoxytone? && !oxytone?
    end

    # Accents or specific terminators
    def oxytone?
      return true if separated.size == 1
      return true if separated[-1] =~ /[#{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

    private

    def separated
      @separated ||= SyllableSeparator.new(@text).separate
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pascoale-0.3.1 lib/pascoale/reflector.rb