Hanakai, and Hanami 3.0 in Full Bloom
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, 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...
Why returning plain data instead of models made some of my Rails code simpler, faster and easier to test.
Years ago I added Elasticsearch to a Rails app and search got faster. I credited the search engine. Looking back, I’m not sure that was the lesson. Here is h...
Rails 8 isn’t really a bag of new methods. Its headline is a stance: drop Redis, drop the PaaS, and run a real app from a single box you own — with the datab...
A short tour of five dry-rb gems I keep coming back to: validation, types, structs, configuration, and composable business logic. Small, focused libraries th...
Service objects keep business logic out of fat controllers and models. A handful of conventions (one entry point, a consistent return value, a simple constru...
You don’t need a database table to get Rails-style validations. With ActiveModel you can validate plain Ruby objects (a contact form, a search form, an API p...
Before reaching for Elasticsearch, it’s worth knowing that PostgreSQL has capable full-text search built in. Here’s how to use it from a Rails app — tokenizi...
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-...
Rails 7.1 isn’t a headline release. It’s a pile of quality-of-life additions that quietly remove boilerplate you write all the time — normalizing attributes,...
Sometimes you’ll have to create a deeply nested hash without knowing how deep it can be at first. This hash should allow reading and setting values at any le...
Most people using Ruby nowdays are using it for Rails. They often defined themselves has ‘Rails developers’, not ‘Ruby developers’. I’m an early adopter of R...
Following the mass and using de-facto libraries isn’t always the best choice. Here are some thoughts about handling translation of data stored in database wh...
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.
Using a vendor library may require to load a shared library. Here’s how to do it in RubyMotion.
As you may know since a couple of month you can write native Android apps using RubyMotion.
Couple months ago I was working on my personal website that I decided to re-write from scratch since most of the existing things had to be scratched off and ...
You’ll sometimes have to use the notion of infinity in your Ruby code. There isn’t any way to directly use infinity in Ruby, at least none that I know of… Bu...
Thor is a simple and efficient tool for building self-documenting command line utilities. I’m a shell guy, I use a terminal everyday and most of my job is do...
Having a clear and well-defined default stack when you start a new project is a good thing — it will have an impact on your productivity and happiness. I’ll ...
Ruby is a very dynamic language which allows you to do things like encapsulate a piece of code in an object. This is a really powerful capability you can use...
Sometimes it can be very useful to add verbose and silent modes to your app. This way users can easily control information level about events happening. As y...