Skip to content
CAI
Software that uses CAICheck a score

rails/activeresource

60.0

Adequate · 19 September 2026

4.3k

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 ActiveResource library, which enables Ruby applications to interact with remote RESTful APIs by mapping remote resources to local objects. It provides ActiveRecord-like features including associations, callbacks, and serialization, while supporting multiple data formats such as JSON, XML, and URL-encoded payloads. The library handles HTTP communication, authentication, and error management, allowing resources to be persisted and queried across network boundaries.

Features

ActiveResource gains associations, callbacks, and serialization support

ActiveResource now supports ActiveRecord-like associations (has\_many, has\_one, belongs\_to) allowing resources to reference other remote resources, and includes a full callback lifecycle (before/after\_save, create, update, destroy, reload) for intercepting state changes. Additionally, it provides ActiveJob serialization for passing resources across jobs and integrates with ActiveRecord's serialize method via a new Coder, enabling ActiveResource instances to be stored directly in database columns.

_lib/active\resource · high confidence

Added performance benchmarking example for ActiveResource instantiation

A new example script, examples/performance.rb, has been added to demonstrate and benchmark the performance of ActiveResource::Base instantiation. The script measures the time taken to create new Customer instances (both standard and namespaced) with and without pre-set attributes, allowing users to observe the overhead associated with attribute assignment in nested resource scenarios.

examples · high confidence

Support for JSON and URL-encoded request formats

ActiveResource now supports serializing and deserializing data in JSON and URL-encoded formats in addition to the existing XML support. Users can configure the format via \ActiveResource.format=\ (defaulting to XML) or use \to\_json\/\to\_xml\ methods on resources. This enables sending HTTP requests with appropriate Content-Type headers and parsing responses in JSON or URL-encoded formats, providing flexibility for APIs that do not use XML.

_lib/active\resource/formats · high confidence

Behavioural changes

ActiveResource initialization and autoload strategy updated

The ActiveResource library now uses ActiveSupport's autoload mechanism to load its components (such as Base, Connection, and Validations) instead of requiring them immediately, which improves startup performance. It also explicitly requires active\_support and active\_model, and conditionally loads the railtie only when a Rails application is defined. Additionally, the deprecation handling logic has been updated to use a custom deprecator instance for Rails versions 7.1 and above, while falling back to the singleton for earlier versions.

lib · high confidence

Modernize build configuration and documentation

The project has updated its development workflow and documentation standards. The Rakefile has been simplified to use Bundler for gem management and removed legacy RDoc generation and RubyForge publishing tasks. A new .rubocop.yml file enforces a modern RuboCop configuration (rubocop-rails-omakase) targeting Ruby 2.7, and a .gitignore file has been added to exclude build artifacts and lock files. Additionally, the README has been converted from RDoc format to Markdown, and a CONTRIBUTING.md guide has been introduced to standardize the contribution process.

(repo-wide) · high confidence

Test coverage

Added test coverage for ActiveResource base functionality; Added test coverage for ActiveResource core components; Added test fixtures for ActiveResource scenarios; Migrate ActiveResource test suite to Minitest and modernize test infrastructure.

Dependencies

Updated dependencies and development tooling for Active Resource

Active Resource now requires Ruby 3.1.0 or higher and depends on ActiveSupport and ActiveModel version 7.2 or later, along with activemodel-serializers XML. The development environment has been modernized by switching to rubocop-rails-omakase for linting and updating the Gemfile to use GitHub branch references for Rails dependencies instead of local paths.

(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 60.

Lenses

  • Code Health 98
  • Architecture 100
  • Maturity 53
  • Readiness 51
  • Security 70

Changes since last survey

  • 300 commits — 260 feature/other, 40 fixes

By area

  • (repo) — 107 commits
  • lib/active_resource — 103 commits
  • (root) — 46 commits
  • test/cases — 22 commits
  • .github/workflows — 12 commits
  • .devcontainer/Dockerfile — 2 commits
  • test/abstract_unit.rb — 2 commits
  • .devcontainer/devcontainer-lock.json — 1 commit
  • .devcontainer/devcontainer.json — 1 commit
  • .github/stale.yml — 1 commit
  • lib/active_resource.rb — 1 commit
  • test/fixtures — 1 commit
  • test/setter_trap.rb — 1 commit

Notable commits

  • fix: Explicitly require base64 to fix uninitialized constant Base64
  • fix: Fix CI config
  • fix: Fix Rails 6.1 compatibility
  • fix: Fix Rubocop violation
  • fix: Fix URI deprecation warnings
  • fix: Fix active job serializer railtie
  • fix: Fix broken CI with Rails 8.1
  • fix: Fix circular require warning in railtie
  • fix: Fix compatibility with Rails 7.1 and older
  • fix: Fix deprecation mocha message
  • fix: Fix enable_net_connection! when Connection is first used
  • fix: Fix example in AR::Base.schema='s documentation
  • fix: Fix find_every instantiating records from symbol and string without prefix_options
  • fix: Fix inconsistent custom format documentation
  • fix: Fix leaky test
  • fix: Fix method name
  • fix: Fix private klass method warning
  • fix: Fix rubocop violations
  • fix: Fix subclasses not inheriting headers set in the superclass
  • fix: Fix test with Rails 7.2.x
  • …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

rails/activeresource 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 890703e8934611c97605941a2c59fd1cf6f628f5 — 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-b51f968c9b10.