Question

5. Write a class Fraction to represent a fraction. It has a constructor to accept a numerator and denominator. The denominator should be 1 by default. The constructor should automatically simplify

the fraction. So if 2 and 4 are passed to the constructor the fraction should be 1/2. Implement a method that takes another Fraction, adds it to the current fraction. The addition function should be chain able, i. e. if function name is add, the we should be able call f.add (1/2).add (1/3). Leverage the add function to implement a + function that can add two fractions and returns the result, (1/2 + 1/3 should return 5/6). Use helper methods as needed, with appropriate access levels. The numerator and denominator attributes should not be accessible outside the class. Implement a to_s to return the fraction as a string in proper format (like "1/2").

Fig: 1