SPDX-FileCopyrightText: 2026 Kerrick Long [email protected] SPDX-License-Identifier: CC-BY-SA-4.0 -->
ratatui_ruby-devtools
Introduction
ratatui_ruby-devtools provides shared development tooling for the RatatuiRuby ecosystem. It includes Rake tasks, linters, license enforcement, and build tooling used across all RatatuiRuby gems.
This is a non-runtime gem. It provides build tooling—not application features. Add it to your :development group only.
Installation
Add this line to your application's Gemfile:
group :development do
gem "ratatui_ruby-devtools"
end
And then execute:
bundle install
Usage
In your Rakefile:
require "bundler/gem_tasks"
require "ratatui_ruby/devtools"
RatatuiRuby::Devtools.install!
task default: i[lint]
This imports all devtools rake tasks into your project.
Provided Rake Tasks
Linting
| Task | Description |
|---|---|
rake lint |
Run all lint tasks |
rake lint:fix |
Auto-fix all linting issues |
rake rubocop |
Run RuboCop |
rake rubycritic |
Run RubyCritic |
rake doc:suggest |
Suggest documentation improvements |
License Enforcement
| Task | Description |
|---|---|
rake license:all |
Run all license tasks |
rake license:headers:all |
Ensure all files have SPDX headers |
rake license:new |
Apply license headers to changed files only |
rake reuse:lint |
Check REUSE/SPDX compliance |
rake reuse:fix |
Add missing SPDX headers |
Version Bumping
| Task | Description |
|---|---|
rake bump:major |
Bump major version |
rake bump:minor |
Bump minor version |
rake bump:patch |
Bump patch version |
rake bump:exact[0.1.0] |
Set exact version |
Executables
bin/agent_rake
An AI-friendly wrapper for bundle exec rake that captures all output and only shows failure summaries.
bin/agent_rake # Run default task
bin/agent_rake test # Run specific task
bin/consolidate_md
Merge multiple markdown files into one, adjusting heading levels.
bin/hbs
Handlebars templating utility.
Templates
Devtools includes templates for scaffolding new ecosystem gems:
| Template | Purpose |
|---|---|
AGENTS.md.erb |
AI agent instructions |
.pre-commit-config.yaml |
Pre-commit hooks |
Rakefile.erb |
Standard Rakefile |
sourcehut.rake.erb |
SourceHut CI task |
build.yml.erb |
SourceHut build manifest |
gemspec.erb |
Standard gemspec |
bin/setup.erb |
Setup script |
mise.toml.erb |
Toolchain versions |
REUSE.toml.erb |
License annotations |
.gitignore.erb |
Git ignores |
.rubocop.yml.erb |
RuboCop config |
Access templates via:
RatatuiRuby::Devtools.templates_path
# => "/path/to/devtools/templates"
Configuration
Tasks auto-discover gem configuration from your *.gemspec. Override if needed:
RatatuiRuby::Devtools.gem_name = "my_gem"
RatatuiRuby::Devtools.version_file = "lib/my_gem/version.rb"
Environment variables for REUSE tasks:
| Variable | Default |
|---|---|
REUSE_COPYRIGHT |
Kerrick Long <[email protected]> |
REUSE_CODE_LICENSE |
AGPL-3.0-or-later |
REUSE_DOC_LICENSE |
CC-BY-SA-4.0 |
Contributing
Bug reports and pull requests are welcome on sourcehut at https://sr.ht/~kerrick/ratatui_ruby/. This project is intended to be a safe, productive collaboration, and contributors are expected to adhere to the Code of Conduct.
Want to help develop ratatui_ruby-devtools? Check out the contribution guide on the wiki.
Copyright & License
ratatui_ruby-devtools is copyright 2026, Kerrick Long.
The gem is AGPL-3.0-or-later: you may use it freely, but you must share changes you make. Documentation is CC-BY-SA-4.0. Code snippets in documentation are MIT-0 (no attribution required).
This program was created with significant assistance from multiple LLMs. The process was human-controlled through creative prompts, with human contributions to each commit. See commit footers for model attribution. declare-ai.org