Ruby Tips
Refinements
Refinements are designed to reduce the impact of monkey patching on other users of the monkey-patched class. Refinements provide a way to extend a class locally.
module TimeExtensions
  refine Fixnum do
    def minutes; self * 60; end
  end
end
class MyApp
  using TimeExtensions
  def initialize
    p 2.minutes
  end
end
MyApp.new    # => 120
p 2.minutes  # => NoMethodError
(to be continued…)