The Ruby and Rails community linklog
Made a library? Written a blog post? Found a useful tutorial? Share it with the Ruby community here or just enjoy what everyone else has found!
Submit a post
Post Preview
Note: Only the first pargraph is shown on the front page and overly long paragraphs may be broken up.
The hidden features of caller
I use Ruby’s caller feature a lot when I’m debugging and trying to figure out the stack trace of a particular code path. I used to think that it couldn’t do much beyond returning the full stack trace as an Array. But it’s got some tricks! Read more.
Setter Method Return Values In Ruby
Ruby setter methods may not return the result you expect them to. Find out what they return, and why, in this article.
command_kit 0.2.1 released
command_kit 0.2.1 has been released! This release contains many minor improvements and fixes. command_kit is a toolkit for building clean, correct, and robust CLI commands as plain-old Ruby classes. command_kit also provides many additional CLI features such as ANSI colors, OS/Distro detection, Package Manager detection, XDG directory support, opening a man page when --help is given, spawning less for paged output, etc.
Railway Oriented Programming In Rails Using Dry-Monads
It’s not every day that you learn a new approach to error handling for Ruby. In this article, Abiodun walks us through a novel error-handling process called Railway Oriented Programming and shows us how to implement it with dry-rb’s monads. https://www.honeybadger.io/blog/railway-programming-dry-monads/
The Template Method Pattern in Ruby (video)
The Template Method pattern allows you to extract the parts of your code that stay the same into a base class and the ones that change into subclasses. [more inside]
Keeping time with TimescaleDB: understanding and integrating time-series data with Ru
⌛On the Martian blog, Backend Engineer Misha Merkushin addresses a timely question – how can we efficiently and effectively store time-series data when working with Ruby on Rails applications? [more inside]
Full Text Search in Postgres with View-Backed Models in Rails
Here’s a fast way to add full text search across multiple AR models using the PgSearch and Scenic gems, while also surfacing a distinct domain concept in your Rails application. https://hybrd.co/posts/full-text-search-in-postgres-with-view-backed-models-in-rails
Real-world Concurrency with Ruby and Polyphony: a Telnet Chat App
In my latest article, I’ll show you how to implement a real-world fiber-based concurrent Telnet chat app using Polyphony. Along the way, I’ll demonstrate how Polyphony lets us write concurrent programs in a natural, idiomatic style, and show how fiber messaging, one of Polyphony’s unique features, allows us to design a concurrent app as a collection of simple, autonomous entities, each having a single responsibility.
Benchmarker 1.0.0 released -- pretty good benchark tool for Ruby
Benchmarker 1.0.0 released. Benchmarker is a pretty good benchark tool for Ruby. Iterate benchmarks, calculate average, print barchart and matrix, filter benchmarks, and so on. See https://kwatch.github.io/benchmarker/ruby.html for details.
Leveling Up Weekly: Ruby on Rails - Issue #3
Hello, I just released the third issue of my weekly newsletter, “Leveling Up Weekly: Ruby on Rails” - a curated Rails and Ruby focused newsletter targeted for junior to mid-level Rails developers. [more inside]
How to store timestamps in Rails
Why we should care about using TIMESTAMP WITH TIME ZONE for almost all timestamps in our apps: https://www.mbronikowski.com/blog/timestamps-in-rails
How to Improve Code Quality on a Ruby on Rails Application
Does it take forever to ship even small features on the codebase you’re working on? Is the code hard to understand and maintain? Are projects always running over budget? Are you constantly sacrificing code quality and not paying down technical debt? [more inside]
Supercharge tests with crystalball + circle-ci
A four part tutorial on optimizing test suite using Crystalball (Regression Test Selection library). Also make it play nice with circle-ci parallel runs. Supercharge tests with circle-ci & crystalball
Best of Ruby Gems Series - Glimmer Days - glimmer-dsl-libui Gem - Desktop UI w/ libui
Hello, let’s thank Andy Maleh for the lastest addition to the glimmer family and to the ruby desktop universe - let’s welcome the Glimmer Mini-Language (Domain-Specific Language / DSL) for Desktop User Interfaces using libui for Linux / Apple Mac / Microsoft Windows. For the full story / write-up see Day 8 - glimmer-dsl-libui Gem - Prerequisite-Free Ruby Desktop Development Library. Happy desktop programming / scripting with ruby.
Rubber Duck Dev Show Episode 19 | How Much Time Should You Spend Planning
Hear two rubyists discuss how time you should spend planning before jumping into coding: https://www.rubberduckdevshow.com/episodes/19-how-much-time-should-you-spend-planning/
Run Your Rails App On Kubernetes: A Step-by-Step Tutorial
Kubernetes has become very popular in recent years as a way to deploy applications using containers. In this article, Geshan shows us how to get a Rails app up and running inside a local K8s cluster. https://www.honeybadger.io/blog/rails-on-kubernetes/
Ruby Vector Graphics Programming ("Less Is More") Challenge - Draw 24x24 Pixel Punks
Hello, in the ongoing ~pixel~ vector art / punk programming - yes, in ruby - series I put together a new Ruby (Vector) 2D Graphics Programming (“Less Is More” or “Code Golfing”) Challenge. The challenge - draw 24x24 pixel punks w/ vector 2D graphics instructions (e.g. line_to, move_to, …) - using your ruby (2D graphics) library of choice. Cheers. Prost.
A no-go fantasy: writing Go in Ruby with Ruby Next
On the Martian blog, Svyatoslav Kryukov enters into a fantasy realm, and is forced to imagine that ✨everything must be written in Go!✨ [more inside]
Snake Game by Glimmer DSL for LibUI
Snake has been built test-first following the MVP (Model / View / Presenter) architectural pattern using Glimmer DSL for LibUI. [more inside]
New release of Truemail 🚀 configurable plain Ruby 📨 email validator
Fixed SMTP validation issues caused by Ruby 3.0 stdlib SMTP client 🚀 Be sure that email address valid and exists 📨 https://github.com/truemail-rb/truemail
[Screencast] Speeding Up Requests
In this episode, we look at several issues around pagination and different kinds of querying that could affect performance when working with large datasets. https://www.driftingruby.com/episodes/speeding-up-requests
Ruby Pixel Art Programming How-To - The Making of 1-Bit (B&W) Adam (24x24 Pixel Punk)
Hello, I put together a 1-bit black & white edition of The Making of Adam (24x24 Pixel Punk) from Scratch / Zero Using Pixel Art Designs in the ASCII Text Format in the Pixel Art How-To series. Happy pixel art programming in ruby.
Glimmer DSL for GTK
Yes, I’ve done it! I built an entire Glimmer DSL in one day! I built Glimmer DSL for GTK after receiving an issue request for it on the Glimmer project page on GitHub! GTK (aka GIMP-Toolkit or [incorrectly] GNOME-Toolkit) is the premiere desktop GUI toolkit on Linux, which also runs on Mac (Quartz GTK+) and Windows. Glimmer DSL for GTK aims to supercharge productivity and maintainability in developing Ruby-GNOME applications by providing a DSL similar to Glimmer DSL for SWT. [more inside]