class Stravid::Fraction::Fraction
Attributes
denominator[R]
numerator[R]
Public Class Methods
new(value)
click to toggle source
# File lib/stravid/fraction/fraction.rb, line 4 def initialize(value) parts = value.split('/') @numerator = parts[0].to_i @denominator = (parts[1] || 1).to_i end
Public Instance Methods
+(other)
click to toggle source
# File lib/stravid/fraction/fraction.rb, line 10 def +(other) a_denominator = self.denominator b_denominator = other.denominator a_numerator = self.numerator b_numerator = other.numerator if a_denominator != b_denominator actual_denominator = a_denominator * b_denominator a_numerator = a_numerator * b_denominator b_numerator = b_numerator * a_denominator else actual_denominator = a_denominator end new_numerator = a_numerator + b_numerator new_denominator = actual_denominator / (new_numerator.gcd(actual_denominator)) new_numerator = new_numerator / (new_numerator.gcd(actual_denominator)) Fraction.new("#{new_numerator}/#{new_denominator}") end
==(other)
click to toggle source
# File lib/stravid/fraction/fraction.rb, line 31 def ==(other) other.numerator == numerator && other.denominator == denominator end
Also aliased as: eql?