Repository navigation
Home
Cyril Kato edited this page Nov 5, 2026
·
2 revisions
Fix writes a specification: what a subject MUST, SHOULD or MAY do, with the words of RFC 2119, and nothing about how the subject is made. The specification is then tested against a subject, each context in a child process, and every expectation gets a result.
require "fix"
Fix :Duck do
on :swim do
it MUST eq "Swoosh..."
end
end
exit(Fix[:Duck].test { Duck.new })Fix is documented in three places, and this wiki is a fourth that does not repeat them.
| You want to… | Go to |
|---|---|
| Learn Fix, page by page, with examples whose output is checked | The guide: fixrb.dev/gems/fix/v1/ |
| Look something up: the words, the matchers, the outcomes, the processes | The README, every example of which is run by the test suite |
| Read the API of a class or a method | YARD documentation |
| Understand why Fix is made the way it is, and how its gems fit together | This wiki |
- Testing Semantics — specifying and testing are two acts; Fix keeps them apart.
- Design Decisions — the choices behind Fix 1, and what each one buys.
- Architecture — the eight gems, what each one owns, and what happens when a file runs.
- FAQ — the questions the guide answers in passing, found by their keywords.
- History — from 0.0.1.pre in 2014 to 1.0.0 in 2026, and what 1.0 changed.
- Contributing — the rules the code is held to, and how to run the checks.
The pages of this wiki describe Fix 1. They avoid the surface of the API where they can, so that they stay true across the 1.x releases; where they quote it, the README is the reference.
Fix
Why
Reference
Elsewhere