class Numeric

Constants

Roman
RomanDigits
RomanNumbers
RomanToInteger

Public Instance Methods

to_bcd() click to toggle source
# File lib/rdoba/bcd.rb, line 58
def to_bcd
  # NOTE: return as plain LSB string
  BCD.parse value; end
to_p(*opts) click to toggle source
# File lib/rdoba/numeric.rb, line 53
def to_p(*opts)
  v = parse_opts(opts)

  value = self
  minus = if value < 0
      value = -value
      true
    end
  res = ''
  while value != 0
    value, rem = value.divmod(256)
    res += rem.chr
  end

  pad_char = if minus
      negres += ''
      over = 1
      res.each_byte do |byte|
        negbyte = 255 - byte + over
        negres += if negbyte > 255
            over = 1
            0
          else
            over = 0
            negbyte
          end
      end
      res = negres
      "\xFF"
    else
      "\0"
    end

  res += pad_char * (v[:padding].to_i - res.size) if res.size < v[:padding].to_i

  plain = (v[:be] ? res.reverse(String::ByteByByte) : res).to_p
  plain
end
to_rom() click to toggle source
# File lib/rdoba/roman.rb, line 21
def to_rom
   res = ''
   num = self
   i = RomanNumbers.size - 1

   while num > 0
      if num >= RomanNumbers[ i ]
         res << Roman[ RomanNumbers[ i ] ]
         num -= RomanNumbers[ i ]
      else
         i -= 1 ;end;end
   res ;end