class Banano::Unit

Constants

STEP

Constant used to convert back and forth between raw and banano

TOTAL

Public Class Methods

ban_to_raw(banano) click to toggle source

Converts an amount of banano to an amount of raw.

@param banano [Float|Integer] amount in banano @return [Integer] amount in raw

# File lib/banano/unit.rb, line 15
def self.ban_to_raw(banano)
  return 0 unless banano.is_a?(Numeric) && banano > 0

  result = (banano * STEP).to_i
  return 0 if result > TOTAL

  result
end
raw_to_ban(raw) click to toggle source

Converts an amount of raw to an amount of banano

@param raw [BigDecimal|String] amount in raw @return [Float|Integer] amount in banano

# File lib/banano/unit.rb, line 28
def self.raw_to_ban(raw)
  return 0 unless raw.is_a?(BigDecimal) || raw.is_a?(String)

  begin
    value = raw.is_a?(String) ? BigDecimal(raw) : raw
    return 0 if value < 1.0 || value > TOTAL

    value / STEP
  rescue ArgumentError
    0
  end
end