Skip to content
CAI
Produce a survey ↗Verify a survey

aasm/aasm

AASM is a Ruby gem that provides a domain-specific language for implementing state machines in Ruby and Rails applications. It manages state transitions, events, and callbacks while integrating with various persistence backends including ActiveRecord, Mongoid, Redis, and Sequel. The system also includes generators to scaffold state machine configurations and offers testing utilities for both RSpec and Minitest frameworks.

55.7

Adequate · 2 August 2026

2.8k

lines of production code

Ruby

primary language

4

bus factor · 247 authors in all

3

measurements over time

CAI band scale
CAI trend line

How it got here

2008–2009 · AASM 6.0.0 release and architecture refactoring

This period focused on the release of AASM 6.0.0, which introduced breaking changes and modernized support for Ruby 3 and Rails 7+. The core architecture was refactored into a modular, namespaced structure with dedicated persistence classes for each ORM, alongside a comprehensive new test suite to ensure stability.

7 changes

2011–2015 · Comprehensive test coverage and generator tooling

This period focused on significantly expanding test coverage for AASM's integration with various persistence backends, including ActiveRecord, Mongoid, and Sequel. The team also introduced RSpec matchers to simplify state machine testing and added Rails generators to streamline the creation of state machine configurations.

13 changes

2017–2019 · Test coverage and Ruby 3.2 compatibility

This period focused on expanding test coverage for various database backends and introducing Minitest assertions for state machine testing. The codebase was also updated to support Ruby 3.2 by refactoring callback invokers to handle keyword arguments correctly. Additionally, the project added compatibility tests for newer Rails versions and non-Rails configurations.

8 changes

CAI lens gauges

Survey your own repository

aasm/aasm was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point the surveyor at a repository you know and see whether you agree with it.

Survey a repository

About this page

  • The description of this project is derived from its own commit history, not from its README.
  • The score is its highest published measurement, taken on 2 August 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 88061ec510 — the exact code this score is about.
  • Scored under rubric rubric-2026.08.18. Score the same commit under that rubric and you get the same number.
CAI link cards