rails/activeresource
60.0
Adequate · 19 September 2026
4.3k
lines of production code
Ruby
primary language
1
measurement over time
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.