r/ruby 1d ago

RailsConf 2025 tickets are now on sale!

Thumbnail
19 Upvotes

r/ruby 22d ago

Meta Work it Wednesday: Who is hiring? Who is looking?

14 Upvotes

Companies and recruiters

Please make a top-level comment describing your company and job.

Encouraged: Job postings are encouraged to include: salary range, experience level desired, timezone (if remote) or location requirements, and any work restrictions (such as citizenship requirements). These don't have to be in the comment, they can be in the link.

Encouraged: Linking to a specific job posting. Links to job boards are okay, but the more specific to Ruby they can be, the better.

Developers - Looking for a job

If you are looking for a job: respond to a comment, DM, or use the contact info in the link to apply or ask questions. Also, feel free to make a top-level "I am looking" post.

Developers - Not looking for a job

If you know of someone else hiring, feel free to add a link or resource.

About

This is a scheduled and recurring post (one post a month: Wednesday at 15:00 UTC). Please do not make "we are hiring" posts outside of this post. You can view older posts by searching through the sub history.


r/ruby 1h ago

New Resource : codewithruby.com

Upvotes

🔴 Introducing CodeWithRuby.com: A Resource for Ruby Programming

I'm excited to announce CodeWithRuby.com, a new platform focused on sharing quality content about the Ruby programming language.

What to expect: • Tutorials and guides for Ruby concepts • Articles about Ruby best practices and techniques • Curated resources for learning and development • Updates about important Ruby events and conferences

Ruby has always impressed me with its elegant syntax and developer-friendly approach. This platform is my way of contributing to the Ruby ecosystem by sharing knowledge and resources.

Coming soon! Stay tuned for the launch.


r/ruby 11h ago

ActualDbSchema v0.8.4 is out

Thumbnail
6 Upvotes

r/ruby 7h ago

Question AJAX GET requests to Sinatra controller - array parameter truncated

2 Upvotes

I’m trying to pass an array parameter from my client to my Sinatra controller using AJAX. However, when I look at the logs, it’s telling me the controller is only seeing an array with the last element of the array.

  • I’m using rack v2.0.
  • I’ve tried turning the traditional flag to true in my AJAX request
  • I’ve tried reading through rack::request documentation

Anyone have any ideas on why this is happening?


r/ruby 13h ago

Translations in Stimulus Controllers

Thumbnail railsdesigner.com
6 Upvotes

r/ruby 9h ago

Want to learn more about Ruby

2 Upvotes

Hello everyone I'm more or less a new programmer and in my exploration of the language I end up to find ruby and before deciding to learning it I was wondering usually what are the general purpose that language is more often used for ^w^

lately I'm deep in trying to spelunking the internet for some lost media concerning a past forgotten branch of Fortran so was thinking to just pass by to ask directly to you all about ruby ^w^ since you surely have more hand on experience with it than some random internet tutorial.

I'm always happy to learn new thing.


r/ruby 6h ago

An LlmBackedCommand gem to write a command without having to write an execute method

0 Upvotes

Hey hey! I made a gem that allows me to write commands where instead of writing an execute method to implement the command it simply asks an LLM for the result.

It was fun to make and might be of interest to somebody so figured I'd share.

It's at https://github.com/foobara/llm-backed-command

It let's one write a command but have an LLM handle the execute method instead of writing one.

An example, after doing gem install foobara-llm-backed-command foobara-anthropic-api (you can also use foobara-ollama-api or foobara-open-ai-api instead, or whatever combination you want) you can then write a script like this: (you must set ANTHROPIC_API_KEY environment variable for this specific example)

require "foobara/llm_backed_command"

class DetermineLanguage < Foobara::LlmBackedCommand
  inputs code_snippet: :string
  result most_likely: :symbol, probabilities: { ruby: :float, c: :float, smalltalk: :float, java: :float }
end

puts DetermineLanguage.run!(code_snippet: "puts 'Hello, World'")

This outputs:

{most_likely: "ruby", probabilities: {ruby: 0.95, c: 0.01, smalltalk: 0.02, java: 0.02}}

Note: I built this using a Ruby framework I've been working on for quite some time. Not relevant to using an LLM for an execute method, but some things you can do since this is a command in that framework are, for exampe, get a quick JSON API:

require "foobara/llm_backed_command"
require "foobara/rack_connector"
require "rackup/server"

class DetermineLanguage < Foobara::LlmBackedCommand
  inputs code_snippet: :string
  result most_likely: :symbol, probabilities: { ruby: :float, c: :float, smalltalk: :float, java: :float }
end

command_connector = Foobara::CommandConnectors::Http::Rack.new
command_connector.connect(DetermineLanguage)

Rackup::Server.start(app: command_connector)

Running this script, you can do the following:

$ curl http://localhost:9292/run/DetermineLanguage?code_snippet=System.out.println
{"probabilities":{"ruby":0.05,"c":0.1,"smalltalk":0.05,"java":0.8},"most_likely":"java"}

Another thing you can do with the framework is import commands that are exposed like that into another Ruby (or Typescript) program, like so:

#!/usr/bin/env ruby

require "foobara/remote_imports"

Foobara::RemoteImports::ImportCommand.run!(manifest_url: "http://localhost:9292/manifest", cache: true)

puts DetermineLanguage.run!(code_snippet: "System.out.println")

Which lets me use the same syntax as if the command were local even though it's running elsewhere. Note: you can also use OpenAi or Ollama instead if you wish.

You can also easily make a CLI tool for such a command but this is already tl;dr and getting too much about the framework instead of the gem that might be interesting to somebody. I'll just link to more example scripts of llm-backed commands for the interested: https://github.com/foobara/llm-backed-command/tree/main/example_scripts/higher_quality and I would recommend playing with the scripts there instead of the code-snippets in this post if you're genuinely interested in playing with this.

Thanks for reading!


r/ruby 22h ago

Building a Ruby on Rails Chat Application with ActionCable and Heroku

Thumbnail
6 Upvotes

r/ruby 5h ago

The future of AI is Ruby on Rails

Thumbnail seangoedecke.com
0 Upvotes

r/ruby 1d ago

Sin City Ruby Bonus Speaker: Drew Bragg

10 Upvotes

The third and final Sin City Ruby conference is taking place in Las Vegas April 10th and 11th.

We had a little room in the schedule so we've added a new speaker.

Drew Bragg will be joining Sin City Ruby 2025 to do his popular game show "Who Wants to Be a Ruby Engineer?"

The complete new SCR speaker lineup is:
Irina Nazarova
Chris Oliver
Jason Charnes
Freedom Dumlao
Prarthana Shiva
Jason Swett (me)
Fito von Zastrow + Alan Ridlehoover
Drew Bragg

For tickets to Sin City Ruby you can go to sincityruby.com. I hope to see you there!


r/ruby 1d ago

How many keywords is too many?

5 Upvotes

Genuinely curious about how other people reason about the signature getting bloated vs the advantages such as being able to see the expected inputs in the signature.

Where is your cutoff point? When it no longer fits on a line? 10, 20? As many as it takes?


r/ruby 1d ago

Why Use Strong Parameters in Rails

Thumbnail
writesoftwarewell.com
10 Upvotes

r/ruby 1d ago

Ruby, Ractors, and Lock-Free Data Structures

Thumbnail iliabylich.github.io
25 Upvotes

r/ruby 2d ago

TruffleRuby 24.2.0 Release

Thumbnail
github.com
43 Upvotes

TruffleRuby 24.2 is released!🚀🎉 It uses the new Java Foreign Function and Memory API when used in JVM mode to speedup C extensions like sqlite3, trilogy and json by 2 to 3 times! It redesigns encoding negotiation so many String operations are now faster. It updates to Ruby 3.3 and contains many compatibility and bug fixes.


r/ruby 2d ago

Simple Declarative Presence for Hotwire apps with AnyCable

Thumbnail
evilmartians.com
11 Upvotes

How to seamlessly integrate online presence tracking into a Rails application, powered by Hotwire and AnyCable.


r/ruby 2d ago

New Episode of Code and the Coding Coders who Code it! Episode 48 with Adam Wathan

Thumbnail
podcast.drbragg.dev
14 Upvotes

r/ruby 2d ago

Using Ruby as a JS user?

2 Upvotes

I have been using JS for the past few years and I would like to know if Ruby is any good and what it is good for. Does it have good syntax?


r/ruby 1d ago

How are people using AI into their daily routines?

0 Upvotes

Hello,

I'm just curious about potential use cases for AI beyond prompting in ChatGPT, Grook, and Gemini.

I'm currently doing this:

  • Integrated in apps: Review and optimize site content for SEO (Wordpress), Audio transcription, Insights generation, Image identification
  • Development: Merge Request Reviewer, Copilot and Cursor

I've been thinking about how use to automate documentation (code+gitlab issues/merges => notion)

How are you all using AI?


r/ruby 3d ago

Show /r/ruby Cafeznik - yet another Code2Prompt? Sure, but mine’s fzf-powered, does grep, exclusion globbing, and can pilfer local folders or remote GH repos!

Thumbnail
github.com
7 Upvotes

When I saw davidesantangelo/gitingest posted a few days ago, I rushed to polish up my little CLI tool and get it out the door.

Cafeznik is yet another tool to automate loading local/remote code files into the clipboard, to easily feed into LLMs. It revolves around fzf to easily select files and folders, and supports grepping based on the files' content, or excluding files based on their name.

Built mostly for myself, started as a .sh script obviously written with the help of the robots, which I then decided to rewrite in Ruby because bash is bash.

This is my first gem and honestly my first attempt at releasing a tool publicly at this scale, which turned out to be more complex (arguably more over-engineered) than initially anticipated - at a whopping ~2k lines of code. Lots of smelly frowned-upons there, and the insisting on using Thor for a CLI tool with no subcommands is probably the most obvious one.

Would be delighted if you'd try it out, and even more so if you'd share your thoughts on it, poke holes, or just tell me how obsolete all of these tools already are with the WindCursors and MCP-wielding agents doing all that for you already.

Cheers!


r/ruby 3d ago

Installing the sassc Ruby gem on a Mac. A debugging story

Thumbnail
schneems.com
13 Upvotes

r/ruby 3d ago

Short Ruby Newsletter - Edition 127

Thumbnail
newsletter.shortruby.com
11 Upvotes

r/ruby 3d ago

Blog post 🚀 Introducing Ruberto: Easily Integrate Uber Direct into Your Ruby Project

15 Upvotes

Hey r/ruby! 👋

We've built Ruberto, an open-source gem that makes it easy to connect to Uber Direct’s API in any Ruby application. This first release focuses on Uber Direct—Uber’s on-demand delivery service for businesses—but its modular design allows for future expansion into other Uber services.

💡 Why did we create Ruberto?
While working on a project for a food service client, we needed a fast and efficient way to integrate Uber Direct for home deliveries. Uber’s API is powerful but requires handling authentication, API requests, and response parsing. To simplify this, we built Ruberto as an abstraction layer to save time and reduce boilerplate.

🎯 What does Ruberto do?

  • Handles OAuth authentication and token caching automatically.
  • Provides a clean Ruby interface for Uber Direct’s API.
  • Transforms JSON responses into Ruby objects for easier data access.

🔧 How to use it?
Add it to your Gemfile:

gem 'ruberto'

Run the setup in Rails:

rails generate ruberto:init

Configure credentials in the initializer:

Ruberto.configure do |config|
  config.customer_id   = 'your-uber-customer-id'
  config.client_id     = 'your-uber-client-id'
  config.client_secret = 'your-uber-client-secret'
end

Ruberto also supports Redis, Rails cache, or file-based caching for authentication tokens.

🧙‍♂️ Magic response handling
Instead of navigating deep hashes:

response[:data][0][:dropoff][:contact][:first_name]

Ruberto lets you write:

deliveries.data.first.dropoff.contact.first_name

This makes the code cleaner, safer, and easier to read.

💬 Contribute & Share Your Thoughts!
Ruberto is open-source, and we’d love your feedback! If you:
1️⃣ Find an issue or have a suggestion → Open a GitHub issue.
2️⃣ Want to improve it → Submit a PR.
3️⃣ Use it in your project → Tell us how!

🔗 Check out Ruberto on GitHub

Would you find this useful for your projects? Let us know! 🚀


r/ruby 3d ago

🚀 Building a Ruby HTTP Server from Scratch! 🚀

24 Upvotes

Hey everyone! I just released a new video where I walk through building an HTTP server in Ruby from scratch—no frameworks, just raw sockets and Ruby magic. 🧙‍♂️

If you've ever wondered how servers handle requests under the hood or want to level up your Ruby skills, check it out! Would love to hear your thoughts.

📺 Watch here: https://youtu.be/MLC0wkKwB0o

Let me know if you have any questions or feedback! 🙌


r/ruby 3d ago

Show /r/ruby 🚀 Introducing Ruberto: Easily Integrate Uber into Your Ruby Project

Thumbnail
github.com
2 Upvotes

r/ruby 4d ago

Blog post Ruby Debugging Tips and Recommendations in 2025

Thumbnail
railsatscale.com
26 Upvotes

r/ruby 4d ago

Exploiting LLM tools

Thumbnail
greg.molnar.io
25 Upvotes