Class: Banano::Unit
- Inherits:
-
Object
- Object
- Banano::Unit
- Defined in:
- lib/banano/unit.rb
Constant Summary collapse
- STEP =
Constant used to convert back and forth between raw and banano
BigDecimal(10)**29
- TOTAL =
(BigDecimal(2)**128 - 1).to_i
Class Method Summary collapse
-
.ban_to_raw(banano) ⇒ Integer
Converts an amount of banano to an amount of raw.
-
.raw_to_ban(raw) ⇒ Float|Integer
Converts an amount of raw to an amount of banano.
Class Method Details
.ban_to_raw(banano) ⇒ Integer
Converts an amount of banano to an amount of raw.
15 16 17 18 19 20 21 22 |
# 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) ⇒ Float|Integer
Converts an amount of raw to an amount of banano
28 29 30 31 32 33 34 35 36 37 38 39 |
# 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 |