Ruby is nice and provides some nice features for those tripping and bumbling in from procedural programming languages.

Could Ruby provide some sort of a "strict-OOP" mode which would force one NOT to use all those "hidden" features and to use the real OOP power of Ruby instead?  Some things that could be flagged or rejected would be:

* method definition outside a class (which would normally be class Object)
* no function calls (only method calls)
* self is required rather than assumed

Or is this idea not useful...?  Or is this idea better for a ruby-lint program?

Just thinking out loud.  Maybe ruby could be presented as an easy introduction to Smalltalk :-)