The Ruby approach is that you should have good enough unit tests to make sure that you can pass everywhere you want. That is also a generally good idea with other dynamic languages, as you get checks that the compiler provides on static languages (like making sure that if you renamed a method, you renamed calls to that method everywhere).