Skip to content
CAI
Produce a survey ↗Verify a survey

paper-trail-gem/paper_trail

PaperTrail is a Ruby gem that provides versioning and change tracking for ActiveRecord models. It automatically captures and stores the state of records across create, update, and destroy events, allowing users to view history, reify past states, and query for specific changes. The system supports flexible serialization formats like JSON and YAML, handles complex data types including PostgreSQL arrays and encrypted attributes, and integrates with Rails, RSpec, and Cucumber for testing and request context management.

66.6

Adequate · 2 August 2026

3k

lines of production code

Ruby

primary language

2

bus factor · 262 authors in all

3

measurements over time

CAI band scale
CAI trend line

How it got here

2009–2013 · Modular architecture and modernization

This period focused on restructuring the PaperTrail codebase into a modular, maintainable architecture with explicit configuration and request-scoped state management. The team modernized the development environment, replaced legacy test infrastructure with RSpec, and introduced a JSON serializer alongside improved framework integrations.

13 changes

2014–2017 · Rails integration and serialization refactoring

This period focused on modernizing PaperTrail's integration with Rails, including restructuring the controller module and introducing a default ActiveRecord Version model. Significant effort was also dedicated to modularizing attribute serialization logic and adding comprehensive test coverage for the new dummy application and various serializers.

25 changes

2018–2023 · Event modularization and migration tooling

This period focused on refactoring the internal event handling into a modular architecture and introducing new generators for custom version tables, including support for UUIDs and MySQL compatibility. The work also expanded test coverage for encryption and query filtering, while adding support for the latest Rails versions.

8 changes

CAI lens gauges

Survey your own repository

paper-trail-gem/paper_trail 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 098058ae47 — 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