Source: https://gktcs.com/media/Reference2/Surendra Panpaliya/Ruby_Rails_Cognizant/Ruby_Cookbook_2nd_Edition.pdf