Takeaway from 'To Refine or Not to Refine': use a refinement to polyfill a new Ruby feature (e.g. Ruby 2.5's Hash#fetch) so a gem can use it without bumping its minimum Ruby version. Later, when the minimum rises, just delete the refinement — the code keeps working.