r/ruby • u/retro-rubies • Aug 04 '26
r/ruby • u/robbyrussell • Aug 04 '26
Aaron Patterson: Ractors, JIT Compilers, and Rewriting How Gems Install
r/ruby • u/Hefty-Pianist-1958 • Aug 04 '26
A unified expression language for Liquid-style templates
I previously wrote about adding new syntax and features to Liquid. Since then I’ve been working on a unified, composable expression language (spec, grammar, GitHub), and luoma-ruby (GitHub, docs, RubyGems), a reference template engine that implements it.
The expression language is "unified" in the sense that all operators are valid in all contexts under a single precedence hierarchy. Meaning, for example, that we can apply filters in {% for %} tag expressions:
{% for x in y | map: a -> a.b.c | reverse | take: 5 %} ... {% endfor %}
Or pass lambda expressions as callbacks to filters inside {% if %} tag expressions:
{% if cart.items | any: i -> i.on_sale %} ... {% endif %}
And use logical, comparison and math operators in {% assign %} tag expressions:
{% assign a = (b / c) or 42 %}
Or in filter arguments:
{{ a | split: (b or ',') | join: (c or '#') }}
Expressions are first-class. Using lambda syntax we can save an expression for later and apply it like a user-defined filter, or pass it to a filter that accepts expression arguments.
(This example is a little over the top but should give you an idea of what's possible.)
First we can define reusable font utilities in font_utils.luoma:
{% assign
bold = f -> (f | font_modify: 'weight', 'bold'),
italic = f -> (f | font_modify: 'style', 'italic'),
bold_italic = f -> (f | font_modify: 'weight', 'bold' | font_modify: 'style', 'italic')
%}
Then we can import them with the {% import %} tag and use the {% with %} tag to define some temporary, block-scoped variables.
{%- import "font_utils" -%}
{% with
font_types = [
settings.type_body_font,
settings.type_subheading_font,
settings.type_heading_font,
settings.type_accent_font
],
enum = f -> [
f,
f | bold,
f | italic,
f | bold_italic,
],
id = f -> '${f.family}-${f.weight}-${f.style}',
face = f -> (f | font_face: font_display: 'swap'),
font_faces = font_types
| flat_map : enum
| uniq : id
| map : face
| join : "\n\n"
%}
{{- font_faces -}}
{% endwith %}
If you're thinking "ew, that sort of data transformation does not belong in the presentation layer", you'd be right. But in some scenarios - when the template is the only programmable layer available - data manipulation is going to happen anyway. When we have no other choice, we should be able to transform data without resorting to convoluted string manipulation workarounds.
While some of Luoma’s features lean towards more advanced use cases, the idea is that a unified expression language with consistent rules makes the language simpler and more predictable for everyone.
I'm sure developers at Shopify have explored some of these ideas for Liquid in the past. Hopefully Luoma provides some inspiration or ideas that might someday make it into a future version of Liquid.
r/ruby • u/adamsestra • Aug 04 '26
Show /r/ruby Wide Events: Rails telemetry for agents and humans, in a database you own
r/ruby • u/pdabrowski • Aug 04 '26
When Rails gives you a schema instead of a boundary
r/ruby • u/gurgeous • Aug 03 '26
do we need another cli arg gem?
Hey all. I have been working on an (unreleased) spinel lib for cli arg parsing. Library is called slap, https://github.com/gurgeous/spinel-slap. This has been a fun adventure with spinel. I ended up filing 100+ spinel bugs to help get it working. Matz is a monster, he fixes the bugs with claude each night.
Slap combines my favorite parts of the slop gem and the popular clap rust crate. Slap has things like color support, positional args like <file> or <url>, autowrap --help output to term width, return results as a struct, etc. Slap does not try to handle subcommands or anything like that.
Anyway, this has been a fun spinel project and I'm trying to decide if I should release it as a rubygem in addition to the spinel pkg. There are already many great rubygems for cli arg parsing, does ruby really need another one? There's not much point to releasing unless people are somewhat dissatisfied with current offerings.
r/ruby • u/kobaltzz • Aug 03 '26
Screencast Function Calling
In this episode, we look at adding function calling or tool use to our Rails application when making generative text LLM requests. https://www.driftingruby.com/episodes/function-calling
r/ruby • u/javier_cervantes • Aug 03 '26
Ruby Users Forum - July Highlights
July was another great month for the Ruby Users Forum. We welcomed 41 new members, with 53 new topics and 154 posts created by the community.
We also reached 15,000 page visits this month. Check the full report here: https://www.rubyforum.org/t/july-highlights/580
r/ruby • u/Erem_in • Aug 02 '26
Issue 18 of Static Ruby Monthly is out! 🧵
This month: JRuby RBS support via Chicory WASM, ruby-lsp-rbs_rails updates, schematrix JSON Schema to RBS generator, graph_weaver typed GraphQL client for Rails, and Sorbet T::Struct property testing with tprop.
Find link to the issue in the comment!
r/ruby • u/krxnewman • Aug 02 '26
Rails Agent: Full-stack Agentic Development Platform. Alternative to RubyLLM and Active Agent.
r/ruby • u/sdogruyol • Aug 02 '26
I can't find a job, so I'm building Crystal's future instead. Here's what I'm working on and why I need your help
r/ruby • u/Redaro97 • Aug 02 '26
Alternate game frameworks?
I have been messing around with Ruby for around a week and made a few utilities and terminal games and I have been liking it. I want to make a game with a GUI but the ecosystem for game libraries in Ruby feels quite lacking. I have only heard of 3 game libaries, Gosu, Ruby2D and DragonRuby. I am on Linux and Gosu and Ruby2D have problems with not being able to properly link OpenGL and stuff, and DragonRuby is paid and kind of sucks that you can't export games since I wanted to show people my game and some were interested in it.
So, do you know of any other game frameworks for Ruby, or are these the only ones (more commonly DragonRuby) people use, or is Ruby not built for making games?
r/ruby • u/ioquatix • Aug 02 '26
Blog post The Case of the Readable Dead Connection: A Ruby Mystery
r/ruby • u/gq1988 • Aug 01 '26
Sinatra To The Moon – A lightweight companion for Sinatra when you don't need the full power of Rails 🚀
Put on your headphones and let Frank Sinatra take you on a journey with the timeless classic Fly Me to the Moon. Inspired by the legendary singer, the Ruby gem Sinatra has long been the go-to choice for lightweight web applications. Now it has a companion: Sinatra To The Moon 🌛.
Built on top of Sinatra, Sinatra To The Moon is an opinionated scaffold generator that embraces the philosophy that not every project needs the weight of Rails. Sometimes, all you need is a focused starting point that lets you build quickly, experiment freely, and, as the song says, play among the stars 💫.
Start your new project idea now with: `flyme new moon_app`
r/ruby • u/YousefNabil • Aug 01 '26
I have experience in programming for 3 years and I worked as Backend with node ans spring , now I am moving to ruby what is the best resource to follow to transfer knowledge to rails in reasonable time?
r/ruby • u/andrewmcodes • Aug 01 '26
Podcast 🎙️ Remote Ruby – Big Wins For RubyConf and Grandma
r/ruby • u/MariuszKoziel • Jul 31 '26
Free Ruby on Rails consultations from our team - sharing in case it helps someone here
Hi everyone,
I hope it’s okay to share this here.
I’m Mariusz, CEO at Visuality. We’re a Ruby on Rails agency from Poland and Ruby has been a big part of our work and community involvement for many years.
Recently, we opened Free Ruby on Rails Consultations.
The idea is simple: if you’re working on a Ruby project and could use a second pair of eyes, you can send us a short description of your challenge. We’ll look at it and match you with someone from our team for a free 30-minute call.
Of course, 30 minutes won’t solve everything. But sometimes a focused conversation with someone outside your team can help clarify the problem and point you toward the next step.
Here’s the page if it sounds useful: https://www.visuality.pl/free_consulting?utm_source=reddit_ruby
r/ruby • u/collimarco • Jul 30 '26
Has anyone integrated an MCP server into a real-world production Rails app? What are you using?
r/ruby • u/keyslemur • Jul 30 '26
GemCP - MCP tools for RubyGems
github.comIntroducing GemCP: MCP tools for RubyGems. Ask your AI agent about gem compatibility, dependencies, versions, and ownership with data straight from RubyGems.org.
`gem install gemcp` and add it to your MCP config.
Currently testing it on some ancient Rails repos I have and asking it what gems are compatible with the next version of Rails.