> A shame that refinements don't really get much love
Their performance is quite awful on MRI. Any method that was refined is tagged as such, which incur a 40% performance hit (for empty methods)[0]. That alone tend to disqualify them for many use cases.
Then, it might get fixed, but whenever you call `using` all the heap is scanned and all methods caches flushed [1], which is a massive perf hit if it happens often.
TruffleRuby however runs them fast, but since most code out there target MRI, they're not really a good idea except for fringe use cases.
[0] https://gist.github.com/casperisfine/1c46f05cccfa945cd156f44... [1] https://github.com/ruby/ruby/pull/4323