I Gave My App a URL
A form, a URL, a page title. I built a small Hanami importer to examine what that ordinary feature lets somebody ask of a server. The interesting part starts...
A form, a URL, a page title. I built a small Hanami importer to examine what that ordinary feature lets somebody ask of a server. The interesting part starts...
Adding authentication meant answering a question the first post in this series had only raised: if the action is a frozen object shared across requests, wher...
I wrote a test for the one thing I had never thought to check, and it failed. Nothing my application rendered had ever been escaped, on any page, while every...
I typed t.timestamps into a Hanami migration out of twenty years of habit, and it blew up. Declaring the two columns by hand fixed that and fixed nothing, be...
I wrote the validations, the database had its constraints, and I assumed the two of them covered the ground between. Then I measured what each one actually r...
Hanami has belongs_to, and it reads exactly like the Rails one. I declared it, ran my test again, and got a failure identical to the one I had before declari...
There is no model generator in Hanami, and no scaffold either. What Rails calls a model turns out to be four separate jobs, and the framework makes you say w...
I am building a real app in Hanami 3 with twenty years of Rails habits, on purpose, to find out where those habits stop working. The very first one broke ins...
Hanami, dry and rom have joined forces as Hanakai, a single family of Ruby tools. The first release under that banner is Hanami 3.0: built-in mailers and i18...
Hanami 2 arrived in three acts: the app rewrite in 2.0, views in 2.1, and a full ROM-based database layer in 2.2. With that last piece, it’s a complete full-...
Last week I wrote about settings up Sikekiq in Hanami. Another gem I often use is I18n since it allows to localize strings and keep them separated from my co...
One of the gems I often use in my Ruby on Rails projects is Sikekiq. For those of you who don’t know about it, it allows to easily manage background processes.