Ruby is more Object Oriented than PHP will ever be. You dont need interfaces or abstract classes in a dynamic language. Unless you want to feel "safe" as a developper.
So you don't know what design by contract is? At least other Ruby and Python devs recognize this lack of features and try to solve it instead of ignoring it or making up excuses:
But this is only for noobs who "want to feel safe", according to you. What a joke. You probably can't even get past an introductory tutorial of this subject.
By safe he probably means "enterprisy." OOP is pretty much a joke when your realize every "pattern" ends up being the singleton with a dozen levels of inheritance by the time a web app development team gets through with it. Every other pattern will fail by the times the marketing and executives get hold of it. It should be called the Fox & Tramp bowl of Singleton pattern. But I digress as I step on the enterprisy toes of team developers.
In Ruby everything is an object with methods and attributes.
In PHP object orientation is an after thought and not a very good one, PHP is so broken it is a joke.
There is a reason why modern web development was invented with ruby and why all modern web frameworks try to copy rails or sinatra. Because Ruby was designed the right way.
One doesnt need interfaces and abstract classes if one uses duck typing and message passing the right way.
Again, you don't understand design by contract. You just pass objects around and pray that they will work.
If you stayed a bit up to date, you would realize that Rails is pretty dated already. For instance, take a look at Symfony2. It easily beats Rails in every aspect possible. You probably won't be able to appreciate it though, since you don't know the first thing about design patterns. You just use whatever you thought was "cool", easy, and you stayed for the syntactic sugar, which you confuse with being well designed.