In essence it tries to be a framework like Rails, in that it is all inclusive, but without all the "magic" that has been discussed about Rails lately.
Most things are just plain old ruby objects and you include the modules you need. This is an oversimplification, but for example: When I build out controller actions in a Rails app, I typically will break out complex actions into service/action/command classes. This allows me to test the logic in isolation from the controller, and allows for true unit tests without need to actually make real requests. Hanami, on the other hand, right from the get go, makes actions there own classes for this very reason.
Also the idea of an "Application" is a bit more vague. Your main app is more a meta-app. This, in theory, helps you develop separate service like applications that are then mounted within this meta-app. This may make it easier to break out into actual services later on.
If you just follow "Rails conventions" and the app is long living, it can get pretty damn unwieldy. I guess the idea here is you can follow Hanami conventions and the app will be more maintainable even at large sizes.
Most things are just plain old ruby objects and you include the modules you need. This is an oversimplification, but for example: When I build out controller actions in a Rails app, I typically will break out complex actions into service/action/command classes. This allows me to test the logic in isolation from the controller, and allows for true unit tests without need to actually make real requests. Hanami, on the other hand, right from the get go, makes actions there own classes for this very reason.
Also the idea of an "Application" is a bit more vague. Your main app is more a meta-app. This, in theory, helps you develop separate service like applications that are then mounted within this meta-app. This may make it easier to break out into actual services later on.
If you just follow "Rails conventions" and the app is long living, it can get pretty damn unwieldy. I guess the idea here is you can follow Hanami conventions and the app will be more maintainable even at large sizes.