lib/extenso_pt/romana.rb in extenso_pt-0.6.0 vs lib/extenso_pt/romana.rb in extenso_pt-0.6.1

- old
+ new

@@ -1,22 +1,24 @@ # frozen_string_literal: true # @author Hernani Rodrigues Vaz module ExtensoPt - # Recursivamente produz numeral romano + # Produz numeral romano a partir de inteiro # - # @param [Integer] numero a converter em numeral romano + # @param [Integer] inteiro a converter # @return [String] numeral romano - def self.ri2r(numero) - return '' if numero <= 0 + def self.ri2r(inteiro) + return '' if inteiro.zero? - ROMAN.each { |r, v| return r.to_s + ri2r(numero - v) if v <= numero } + # numeracao romana nao tem negativos + inteiro = inteiro.abs if inteiro.negative? + ROMAN.each { |r, v| return r.to_s + ri2r(inteiro - v) if v <= inteiro } end - # Recursivamente produz inteiro + # Produz inteiro a partir de numeral romano # - # @param [String] numeral romano em convercao - # @param [Integer] ultimo numeral convertido + # @param [String] numeral romano a converter + # @param [Integer] ultimo valor convertido # @return [Integer] inteiro do numeral romano def self.rr2i(numeral, ultimo) return 0 if numeral.empty? v = ROMAN[numeral[-1].to_sym]