https://medium.com/@vikasch2802/day-18-of-gsoc-my-journey-into-ruby-and-open-source-with-gsoc-f9260c0a3930