Kiba ETL from Scratch with SFTP
H ow does raw data become clean and structured information? The answer lies in ETL : Extract, Transform, Load .
How to use Prettier to lint Ruby files
When it comes to maintaining clean and consistent code in Ruby on Rails applications, proper linting is crucial. Prettier is a popular code formatter that can be used to enforce consistent code style…
Klaviyo — Email & SMS Automation for improved Marketing
Marketing. The ever-evolving development of strategies that aid businesses reach their target market with valuable goods and services.
How to create a new ruby gem
In this article I will explain how we can build a new ruby gem, using as an example the one I created for Slack authentication.
Gem Factory
A cool perk of being an able developer is the ability to, if you want, improve or add to the tools you use daily and allow others to benefit from it.
Organize your translations using multiple locales files
Of course, this contains an example with Pokémon!
Building a Slack App using Ruby and Sinatra
My team at Runtime Revolution uses an in-house app for team management and other day-to-day chores. Recently, I was asked to integrate Slack’s Slash Commands into it.
Toilet Vacant: A Rails app which notifies you via Slack
Every day, there’s that time when you need to go to the toilet. You get off your chair, start walking towards a door with a drawing of a gentleman or a lady and hope that it is vacant.
Four things about Pry
I love REPL s. It’s a great development tool. Any decent language has a REPL. Lisp has it. Python has it. So does Haskell . And Ruby , obviously, has it!
Polyglot content in a rails app
Most of the apps that we develop are in English. As this is the most universal language in the world, it is normal to use English since it means reaching more people with our app.
Crystal is not Ruby Pt. 2
Crystal is a very interesting language and has become one of my favorites to work with. It’s constantly compared to Ruby and is often marketed as an alternative to write performant code but with a…
Redis — An Introduction
Redis is an in-memory key-value data store that you can integrate with your application to store volatile data. It’s volatile because once you quit Redis, all the data you’ve stored is lost.
Interactor Objects
As time goes by and your application grows, your code will become increasingly more complex. This means that there will be a lot more logic in places where it shouldn’t be.
Crystal is not Ruby Part 1
Crystal is a very interesting project that I have been following for the last couple of months. There is no 1.0 release yet ( but it’s close ) so I haven’t really used it in any production systems,…
Transposing Lisp into Ruby
When you work for a long time on the same technology you can become alienated from the world around you. For the past eight years I must have spent 90% of my time in the land of lisp ( pun intended)…
Building a DSL in Ruby — Part 2
In the previous blog post , we implemented the first version of an example of a DSL library in ruby, a simple FactoryBot clone.
Building a DSL in Ruby — Part 1
Have you ever wondered how libraries like FactoryGirl (or should I say FactoryBot ?) work? Or Rails routing? It all seems a bit like magic sometimes doesn’t it? Let me debunk all of that for you!
Open Source Contributions made simple
Contributing to Open Source software can be overwhelming. There are a lot of projects that need help and welcome new contributors, but getting started can be hard.
An in-depth look at the OAuth2 redirect flow
Implementing an OAuth2 client in rails is a simple task due to gems like omniauth and devise . They do the heavy work implementing the core of the O Auth2 protocol.
Validating Form Objects
There’s one question that comes up soon after starting to use form objects :
Getting 100% with rounded percentages
I’m currently working with reports and graphs and I had the following request for one of these reports:
Ruby Challenge: Feature flagging in Python
I’ve been programming in Python for the last year. I’d rather work in Ruby but there are some features in Python and some of its libraries that are really cool.
Value Objects in Ruby on Rails
Today I’m going to talk about value objects and how they can be used and identified in your Rails application.
Rails Quiz: XSS Edition
Cross-site scripting (XSS) is a type of computer security vulnerability that enables an attacker to inject code into a web page.
Are you Spying on me? A quick overview of Spies in RSpec
When executing code, you expect things to happen. You expect objects to receive messages. You also expect objects to receive one, or more, messages a certain number of times (in most cases).
Working with Facebook using Devise, Omniauth, Koala and Rails 5
The feature that possibly every developer had to implement at some point in their career is user authentication. In some cases, you might want to make use of Facebook accounts to facilitate the…
Unit testing with VCR
You have an application that makes HTTP calls to an external service and you have no tests for it. You want to make sure that your application behaves correctly whether those services return…
Creating Form Objects with ActiveModel
A form object is an object designed specifically to be passed to form_for . It is often used to aggregate data to create multiple objects or to receive ephemeral data that is used and then discarded.
Extending git with Ruby
At Runtime Revolution all our projects use git as part of the development workflow, which is why I think its important to find ways of extending git to make our lives easier.
Setting up a simple Rails development environment with Docker for fun and profit
C reating a development environment may seem like a trivial task for many developers. As time progresses, and we find ourselves dwelling through the life cycle of so many projects, one probably ends…
A simple trick to make your classes easier to test
I’m a firmly believer that good code is code that can be easily tested . If I can’t easily test a module or a class, it most likely means that the class has too many dependencies and/or too many…