Last week I learned that we should use cover? instead of include?. When you ask a range if it includes something, ruby is going to instantiate every object within that range and then check if the object you pass into include? exists in there. If you ask cover? it’s just going to figure out and it’s going to instantiate the two end points and then use some logic to figure out if the thing you passed in is between it. If we have a range that was 400 years long (about 146000 days), and many user requests, cover? could be much faster performance wise.