‘Iacta alea est’
Hanami is a framework for developing web applications in Ruby by Luca Guidi. It is designed for simplicity and productivity. Without having used it too much in anger, it very much seems to be crafted with a lot of care and attention to detail.
Hanami includes a form builder with form helpers. This is what defining a simple form looks like:
<%= form_for :book, '/books' do div class: 'input' do label :title text_field :title end div class: 'input' do label :author text_field :author end div class: 'controls' do submit 'Create Book' end end %>
I smiled when I saw this. If you squint, it looks like a mix of Rails and Hypertext. The syntax is based on Hanami’s own HTML5 generator. What’s exciting is that you can actually specify your form in the view class rather than the template:
module Web module Views module Books class New include Web::View def form form_for :book, routes.books_path do text_field :title submit 'Create' end end end end end end
And then call it in the associated template with:
<%= form %>
I think I’ll spend a little bit of time diving into Hanami in more detail to examine how it handles the mapping of HTML to a “form object” and how it handles the form object itself.
—Tuesday 8th June 2021.