Hacker News new | ask | show | jobs
by netcraft 4911 days ago
forgive my ignorance, and I'm not familiar with ruby or ActiveSupport, but how does that solve the problem? Wouldn't different module's be expecting the method to be implemented in a certain way, and this would would have the method implemented, but not the version they expect?
1 comments

Well, any time you have conflicting libraries, you have a potential monkeypatching conflict, but depending on the case, you might want to implement a method, but only if it hasn't been implemented yet. For example, consider that we have our application, and it uses the "foo" library (which provides a "bar") method, but it might also use the "baz" library (which provides an optimized "bar") if baz is installed.

Currently, you have to attempt to load baz before you load foo, and then not load foo's implementation of bar, if baz loaded successfully. In the future, you could just prepend foo, and so if baz was already loaded, it doesn't overwrite its optimized implementation. If baz wasn't loaded, then when it does load, it would overwrite the prepended implementation properly.

This just frees you up from having to worry so much about load order. It's not a huge feature, but it's a nice little quality-of-life change.