Skip to content
CAI
Software that uses CAICheck a score

activeadmin/inherited_resources

56.9

Adequate · 19 September 2026

1.5k

lines of production code

Ruby

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

This system is the InheritedResources gem, a Ruby library that simplifies Rails controller development by providing a DSL for automatic resource handling and HTTP response generation. It allows developers to scaffold controllers with minimal code, supporting features like nested associations, custom parent controllers, and strong parameter permitting. The project is maintained as a Rails Engine with comprehensive test coverage and tooling to ensure compatibility with modern Ruby and Rails versions.

Features

Add Inherited Resources controller generator

A new generator is available to scaffold controllers that inherit from InheritedResources::Base. This generator creates a controller class with automatic strong parameter permitting and supports singleton defaults, allowing users to quickly generate controllers that integrate with the InheritedResources gem.

lib/generators · high confidence

Added binstubs for bundle, rake, and rubocop

The project now includes executable binstubs in the bin directory for bundle, rake, and rubocop. The bundle binstub allows running bundle commands against specific gemfiles located in the gemfiles directory. The rake and rubocop binstubs ensure these tools are executed using the versions defined in the project's Gemfile, providing consistent and isolated execution environments for development tasks.

bin · high confidence

Behavioural changes

InheritedResources base class now inherits from a configurable parent controller

The InheritedResources::Base class now dynamically inherits from the class specified by InheritedResources.parent\_controller instead of a hardcoded default. This allows applications to customize the base controller inheritance chain, enabling scenarios where the base controller needs to extend a custom application controller or a different parent class. The change also includes a frozen string literal magic comment and ensures that the resource\_class class\_attribute is not overwritten if already defined.

app/controllers · high confidence

InheritedResources v2.1.0: Major refactor and responder integration

InheritedResources has been refactored into a modular structure, replacing the monolithic base class with separate modules for actions, DSL, and helpers, and now relies on the external \responders\ gem for HTTP responses. This update introduces a new class-method DSL for defining controller actions, adds support for shallow nested associations, and changes the default responder behavior to only respond to HTML requests by default. Additionally, the library now uses \class\_attribute\ instead of deprecated class accessors and enforces frozen string literals.

_lib/inherited\resources · high confidence

Project maintenance and tooling updates

This release introduces several maintenance and tooling changes. The project now enforces code style and quality using RuboCop with a configuration targeting Ruby 3.2, including plugins for Minitest, packaging, and performance. The default Rake task has been updated to run both tests and RuboCop checks. Additionally, the changelog has been migrated to Markdown format, and the gemspec no longer enforces upper-bound dependency limits, allowing for more flexible dependency resolution.

(repo-wide) · high confidence

Refactor to use Rails Engine and Responders gem

The library has been restructured to rely on the \responders\ gem for handling HTTP responses and flash keys, replacing the previous internal \respond\_to\ implementation. It now loads as a Rails Engine, utilizing \require\_relative\ for internal dependencies and \ActiveSupport.on\_load\ hooks to extend \ActionController::Base\. This change introduces support for setting a custom \parent\_controller\ and allows controllers to include functionality via \inherit\_resources\ without inheriting from \InheritedResources::Base\.

lib · high confidence

Test coverage

Added base view tests for pets and trees; Added comprehensive test coverage for belongs\_to associations and controller defaults; Added tests for Gemfile lock consistency and gemspec build validity; Added view tests for address, geolocation, and venue.

Dependencies

Update dependencies to support Rails 8.1 and Ruby 3.2+

The gemspec now requires Ruby 3.2 or higher and Rails 7.0 or higher, while the development environment and CI test matrices have been updated to include Rails 7.0, 7.1, 7.2, 8.0, and 8.1. This change ensures compatibility with the latest Rails versions and updates core dependencies such as nokogiri, mocha, and minitest to their latest stable releases.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 57.

Lenses

  • Code Health 94
  • Architecture 99
  • Maturity 31
  • Readiness 74
  • Security 78

Changes since last survey

  • 300 commits — 292 feature/other, 8 fixes

By area

  • (root) — 171 commits
  • .github/workflows — 29 commits
  • test/rails_61 — 18 commits
  • test/rails_60 — 15 commits
  • gemfiles/rails_61 — 14 commits
  • gemfiles/rails_70 — 12 commits
  • (repo) — 7 commits
  • .github/dependabot.yml — 7 commits
  • lib/inherited_resources — 5 commits
  • .circleci/config.yml — 4 commits
  • test/rails_52 — 4 commits
  • .github/mergify.yml — 3 commits
  • .dependabot/config.yml — 2 commits
  • .github/release.yml — 2 commits
  • gemfiles/rails_60 — 2 commits
  • gemfiles/rails_71 — 2 commits
  • lib/inherited_resources.rb — 1 commit
  • test/base_test.rb — 1 commit
  • test/rails_70 — 1 commit

Notable commits

  • fix: Fix CI and update dependencies (#954)
  • fix: Fix Tidelift badge (#821)
  • fix: Fix test suite deprecations caused by Rails 7.1 (#875)
  • fix: Improve CI and fix missing assertions (#923)
  • fix: Revert "Bump rails from 6.0.3.7 to 6.1.3.2 in /test/rails_60"
  • fix: Revert "Use :unprocessable_content as error status"
  • fix: Update Rubocop, enable new cops, fix offenses (#902)
  • fix: Use https where possible and fix redirects (#929)
  • change: Add Codecov setup (#823)
  • change: Add Dependabot review workflow for auto merge (#824)
  • change: Add GitHub release config
  • change: Add Rails 7.1 support (#873)
  • change: Add RuboCop Packaging (#936)
  • change: Add RuboCop performance (#884)
  • change: Add Rubocop Minitest (#885)
  • change: Add Ruby 3.1 to CI matrix (#714)
  • change: Add categories to release config
  • change: Add frozen string literal magic comment (potential breaking change) (#933)
  • change: Add frozen_string_literal magic comments (#858)
  • change: Add rails_61 to Dependabot (#638)
  • …and 280 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

activeadmin/inherited_resources 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 a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 171077c8b7d74e6627ed7524fa1746c238d743bf — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-13a154b7f5d1.