Sha256: 2a736a4cbf03ab188e8cc0c32eb97b8e33baaf7fb9354eefaef237a7f1ffefb5

Contents?: true

Size: 443 Bytes

Versions: 1

Compression:

Stored size: 443 Bytes

Contents

module Stellar
  Price.class_eval do
    def self.from_f(number)
      return new(n:0,d:0)  if number == 0.0

      inverted = number > 0.0 

      # normalize
      number = 1.0 / number if inverted

      # fractionalize
      r = number.to_r
      n = r.numerator
      d = r.denominator

      # pricify
      new({
        n:inverted ? d : n, 
        d:inverted ? n : d,
      })
    end

    def to_f
      n / d.to_f
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
stellar-base-0.0.2 lib/stellar/price.rb