Currently writing about: AWS, React.js, Node.js, TypeScript, friction logs.

50 Days of Ruby

Blog series

#1: Understanding Ruby Blocks

A recap on the fundamentals of Ruby blocks.

8 min read

#2: Pattern Matching In Ruby

Understand pattern matching in Ruby.

4 min read

#3: Bang Methods In Ruby

Why the '!' in Ruby is so important to conquer and real-world implications.

3 min read

#4: The Beginner's Guide To Monkey Patching In Ruby

This guide will alleviate questions that new Rubyists have around monkey patching and how it works in Ruby.

9 min read

#5: Rails 7 Using React With Htm

See how you can update your new Ruby on Rails 7 project to use HTM and React without a Node.js setup.

6 min read

#6: Rails 7 Using React With ESBuild

Set up a new Rails 7 project with ESBuild that has TypeScript support out-of-the-box.

4 min read

#7: Setting Up A Base GraphQL Server And GraphiQL With Rails 7

Follow along as we build out a skeleton Rails 7 server that enables us to use GraphQL.

7 min read

#8: Exploring Dry-RB With Dry Matcher And Dry Monads

See how we can use the Dry RB gems dry-matcher and dry-monads to clean up our Ruby code.

7 min read

#9: Repository Pattern In Rails

A look at how we can implement a Railsy-way of the Repository Pattern in our Rails apps.

10 min read

#10: Dry Validation With Rails

Continuing on with our project, the next step is to add in dry-validation and dry-monads to help tidy up our code.

16 min read

#11: Factory Bot With Rails

At this stage of the project, we are introducing Factory Bot to help replace the default fixtures so we can test our PostsRepository code.

11 min read

#12: Action Cable Hello World With Rails 7

Dive head-first into using Action Cable with Rails 7 and setup a basic React project that can handle web sockets.

8 min read

#13: Action Cable Messages With Redux

Continuing on from the last post, we introduce Redux to handle our remote messages and perform actions on our React.js application.

8 min read

#14: Ruby On Rails Pagination With Kaminari

Implement simple pagination mechanisms using the Kaminari gem with Ruby on Rails 7.

9 min read

#15: Using The Rails Cache With Redis

An entry-level introduction to setting up the Rails cache and seeing it in action with Redis in development.

6 min read

#16: Getting Started With Sidekiq In Rails 7

A demonstration on getting a local development environment going with Sidekiq and Redis to run a simple demonstration job in Rails 7.

7 min read

#17: Rate Limiting With Rack Throttle In Rails 7

This is the first of two posts that will look at rate limiting in Rails application. This post will focus on the rack-throttle gem and its usage with Redis.

6 min read

#18: Rate Limiting With Rack Attack In Rails 7

In the second of two posts, we look at setting up rate-limiting with the rack-attack gem to see how we can limit requests to our API.

10 min read

#19: Devise Part 1: Setting Up Devise With Rails 7 And React

In part one of this six part series on Devise and Ruby on Rails, we demonstrate setting up Devise for Rails 7 with a basic sign up and login flow.

5 min read

#20: Devise Part 2: Using Redis Sessions Instead Of The Cookie Store

In part two of our Devise series, we look at how we can replace the default cookie session store with Redis.

3 min read

#21: Devise Part 3: Updating Our Devise Views With Tailwind CSS

In part three of the series, we walk through how to add TailwindCSS to a Rails 7 project and spruce up our sign in page.

4 min read

#22: Devise Part 4: Authentication With A Separate Frontend

In part four, we add in a separate Next.js project into the mix and demonstrate how to organize authentication for our main Rails API.

9 min read

#23: Devise Part 5: OAuth With GitHub And OmniAuth

In part five, we set up the OmniAuth configuration for Devise to demonstrate login using GitHub.

7 min read

#24: Devise Part 6: Adding Recaptcha To Prevent Fraud And Abuse

In part six, we enforce the usage of reCAPTCHA v2 to prevent signing up or logging in without passing the reCAPTCHA verification.

6 min read

#25: Sending Your First Email With ActionMailer In Rails 7

Follow the basics to send an email using a Postmark template and view it in the browser during development.

13 min read

#26: Benchmarking In Ruby

This post will demonstrate how to benchmark and compare code to help us better understand the performance of our Ruby code.

3 min read

#27: Devise Part 7: Testing With RSpec And Factory Bot

For this part, we look at setting up some helpers for us to log users in when writing controller tests.

6 min read

#28: Devise Part 8: Policy Authorization In Rails 7 With Pundit

This post looks at how we outline required policies in order to fulfill requests in Ruby on Rails using the Pundit gem.

10 min read

#29: Devise Part 9: Setting Up 302 Redirection vs 401 Unauthorized Handlers

In part nine, we take a look at how we can set up our API endpoints to return a 401 response if a user is not signed in instead of the default 302 redirect to the login page.

6 min read

#30: Ruby Memoization Basics And Memoist

An intro into Ruby memoization with the memoization operator and the Memoist gem.

4 min read

#31: SimpleCov With Ruby And GitHub Actions

See how to setup SimpleCov for your RSpec tests in a simple Ruby setup and then implement a GitHub Action to comment the coverage results in a pull request.

5 min read

#32: ActiveAdmin With Ruby On Rails 7

ActiveAdmin is a powerful gem to help us generate admin panels for our internal usage for Rails applications. This post will cover the basics of getting up and running with ActiveAdmin and Ruby on Rails 7.

5 min read

#33: Getting Started With The FriendlyID Gem In Rails 7

See how the FriendlyID gem makes it simple to convert you URLs into something more useful and friendly with Rails 7.

5 min read

#34: Exploring Ahoy Analytics With Rails 7

This post is a reflection on my first look at using Ahoy analytics in a Rails 7 application.

4 min read

#35: Devise Part 10: Devise Token Auth

In part ten of the Devise series, we start a new project from scratch to explore how the devise-token-auth gem can be setup with a Rails 7 application.

4 min read

#36: Devise Part 11: Authentication Tokens With Doorkeeper

In part eleven of the Devise series, we continue on with the previous project to add the capability of authenticating to a public API using authentication tokens with Doorkeeper.

7 min read

#37: Understanding Rails Associations

In this post, we go through all six of the possible Rails associations with visualizations to help us understand what associations are supported and how they work in Rails 7.

9 min read

#38: Through Rails Associations

Following up on the previous post, we will be looking at the last through associations that come baked into Rails.

5 min read

#39: Rails Entity-Relationship Diagrams

In this short post, see how you can visualize your domain model quickly using the rails-erd gem.

1 min read

#40: RSpec With GitHub Actions

In this short overview, see how RSpec can be incorporated into your GitHub Actions workflows.

3 min read

#41: MiniTest With GitHub Actions

In this short overview, see how MiniTest can be incorporated into your GitHub Actions workflows.

4 min read

#42: Creating Your Own Ruby Gem

In this post we will take our basic code from the previous exercises and package it up as a Ruby gem to install in other projects.

2 min read

#43: Deploying Your Gem To RubyGems

In part two of the Ruby gem series, we will take the gem we created in the previous part and deploy it to RubyGems.

3 min read

#44: Automating Ruby Gem Package Releases With Github Actions

In the final part of the Ruby Gem series, we will be automating the deployment of our recently created gem using GitHub Actions.

6 min read

#45: Uploading Files In ActiveAdmin

See how to upload files to ActiveAdmin using this example that uploads a CSV file and populates data to the database.

5 min read

#46: Processing Local YAML Files With Sidekiq

See how you can use Sidekiq jobs to read and process a local YAML template for populating the database.

5 min read

#47: Pry Debugger Tips

Some basic tips on getting more value from the Pry debugger.

6 min read

#48: Mocks With Minitest

A short overview on how you can mock both class methods and instance methods when dealing with Minitest.

4 min read

#49: Ruby SmarterCSV Gem

A quick look at using the SmarterCSV gem.

2 min read

#50: Annotated Rails Models

Help understand your Rails models easier with the help of the annotate models gem.

3 min read

#51: Local ActiveStorage Development With Rails 7

Set up ActiveStorage on your local developer environment with Rails 7.

4 min read

Dennis O'Keeffe

2020-present Dennis O'Keeffe.

All Rights Reserved.