Refactor by RubyEnumerableBase & RubyEnumeratorBase interfaces
Fix JavaDoc
Add RubyContract
Improve code coverage