Sha256: 0dd987592e771db13f7ca01297ffbca506da12e778be1057f133d6be51afb07e

Contents?: true

Size: 719 Bytes

Versions: 1

Compression:

Stored size: 719 Bytes

Contents

# frozen_string_literal: true

# @author Hernani Rodrigues Vaz
module ExtensoPt
  # Recursivamente produz numeral romano
  #
  # @param [Integer] numero a converter em numeral romano
  # @return [String] numeral romano
  def self.ri2r(numero)
    return '' if numero <= 0

    ROMAN.each { |r, v| return r.to_s + ri2r(numero - v) if v <= numero }
  end

  # Recursivamente produz inteiro
  #
  # @param [String] numeral romano em convercao
  # @param [Integer] ultimo numeral convertido
  # @return [Integer] inteiro do numeral romano
  def self.rr2i(numeral, ultimo)
    return 0 if numeral.empty?

    v = ROMAN[numeral[-1].to_sym]
    v < ultimo ? (rr2i(numeral.chop, v) - v) : (rr2i(numeral.chop, v) + v)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
extenso_pt-0.6.0 lib/extenso_pt/romana.rb