Data validation is an important piece in software architecture. Adding this responsibility to models increase the cost of maintenance. Lotus offers a different and powerful approach to the problem.
Writing detailed documentation helps to improve software design. Explaining the intent mitigates inconsistencies and helps other people to understand our initial idea. We'll discover why the semantic of the raised exceptions is important to write solid API interfaces.
Lotus is a complete web framework for Ruby with a strong emphasis on object oriented design and testability. If you use it, you employ less DSLs and more objects, zero monkey-patching, separation of concerns between MVC layers. Each library is designed to be small, fast and testable.
Inheriting from Ruby's classes can be harmful. Composition should be preferred over inheritance, but beware of the unexpected behaviors.
Rails is not dead. Debating about things such as the hexagonal architecture isn't an assault to the framework, but a way to evolve as a community. If they feel under attack, we have a problem. Please speak up.