<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/sources/rubyla/best-of/2025/07" -->

---
title: Best RUBYLAND posts — July 2025 | daily.dev
description: The most upvoted RUBYLAND posts from July 2025, curated by the daily.dev community.
canonical: https://daily.dev/sources/rubyla/best-of/2025/07
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:url: https://daily.dev/sources/rubyla/best-of/2025/07
og:type: website
og:site_name: daily.dev
og:title: Best RUBYLAND posts — July 2025 | daily.dev
og:description: The most upvoted RUBYLAND posts from July 2025, curated by the daily.dev community.
og:image: https://media.daily.dev/image/upload/s--VAY5ToZt--/f_auto/v1724209435/public/daily.dev%20-%20open%20graph
---

# Best of RUBYLAND — July 2025

1. 1  
[](https://daily.dev/posts/otp-input-field-with-stimulusjs-upyhrhbqm "OTP Input field with StimulusJS")  
Article  
![Avatar of rubyla](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/rubyla)RUBYLAND · 1y  
OTP Input field with StimulusJS  
A comprehensive guide to building OTP (One-Time Password) input fields using StimulusJS, covering two approaches: a single accessible input with CSS styling and multiple inputs with JavaScript navigation. The tutorial includes keyboard navigation, paste functionality, form validation, and accessibility features like ARIA labels and screen reader support.  
16
2. 2  
[](https://daily.dev/posts/git-rebase-exec-fbkyfwl4p "Git Rebase Exec")  
Article  
![Avatar of rubyla](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/rubyla)RUBYLAND · 1y  
Git Rebase Exec  
Git rebase exec allows developers to execute arbitrary code during interactive rebases. The 'x' command can run shell commands, scripts, or tools like RuboCop between commits. Commands can be interspersed throughout the rebase process, and the --exec flag applies the same script to all commits. Failed executions halt the rebase for correction, while successful ones continue automatically.  
13
3. 3  
[](https://daily.dev/posts/you-should-delete-tests-d1ck5fnds "You should delete tests")  
Article  
![Avatar of rubyla](https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/rubyla)RUBYLAND · 1y  
You should delete tests  
Challenges the common belief that tests should never be deleted, arguing that tests exist primarily to build confidence in code changes. When tests become flaky, overly brittle, too slow to run regularly, or test outdated requirements, they actually decrease confidence and should be removed. The key principle is that any test that harms rather than helps developer confidence in their changes should be deleted rather than maintained.  
10  
2

[See all RUBYLAND archives](/sources/rubyla/best-of)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://daily.dev/sources/rubyla/best-of/2025/07#page","url":"https://daily.dev/sources/rubyla/best-of/2025/07","name":"Best RUBYLAND Posts — July 2025","description":"The most upvoted RUBYLAND posts from July 2025, curated by the daily.dev community.","isPartOf":{"@type":"WebSite","url":"https://daily.dev"}},{"@type":"ItemList","@id":"https://daily.dev/sources/rubyla/best-of/2025/07#items","numberOfItems":3,"itemListElement":[{"@type":"ListItem","position":1,"url":"https://daily.dev/posts/otp-input-field-with-stimulusjs-upyhrhbqm","name":"OTP Input field with StimulusJS"},{"@type":"ListItem","position":2,"url":"https://daily.dev/posts/git-rebase-exec-fbkyfwl4p","name":"Git Rebase Exec"},{"@type":"ListItem","position":3,"url":"https://daily.dev/posts/you-should-delete-tests-d1ck5fnds","name":"You should delete tests"}]},{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Sources","item":"https://daily.dev/sources"},{"@type":"ListItem","position":3,"name":"RUBYLAND","item":"https://daily.dev/sources/rubyla"},{"@type":"ListItem","position":4,"name":"Best of","item":"https://daily.dev/sources/rubyla/best-of"},{"@type":"ListItem","position":5,"name":"July 2025"}]}]}
```

