Method: Math::Fraction#initialize

Defined in:
lib/frac.rb

#initialize(float, maxden = 0x100) ⇒ Fraction

Returns a new instance of Fraction.



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/frac.rb', line 32

def initialize(float, maxden = 0x100)
  if float.is_a?(String)
    @r = 0
    sign = 1
    float.split(' ', 2).each do |part|
      if (part.include?("/"))
        @r += sign * Rational(*(part.split('/', 2).map(&method(:Integer))))
      else
        @r += Math.frac(part, maxden)
        sign = @r >= 0 ? 1 : -1
      end
    end
  else
    @r = Math.frac(float, maxden)
  end
end