Skip to content
CAI
Software that uses CAICheck a score

rspec/rspec-rails

77.8

Strong · 26 September 2026

5k

lines of production code

Ruby

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is the RSpec Rails integration library, which provides specialized testing tools for Ruby on Rails applications. It enables developers to write and run specs for core Rails components—including controllers, models, views, mailers, jobs, and Action Cable channels—using dedicated DSLs, matchers, and generators. The library also handles the scaffolding of test files, automatic configuration of testing environments, and integration with Capybara for feature and system testing.

How it got here

2009–2010 — Rails 8+ integration and generator overhaul

33 changes.

This period focused on modernizing RSpec Rails to support Rails 8+ and Ruby 3.0+, introducing a centralized entry point and a new railtie for seamless integration. The work included a comprehensive overhaul of the generator system to provide granular control over spec types and improved defaults, alongside the addition of specialized example groups and matchers for modern Rails features like ActionCable and ActionMailbox.

2011–2014 — Generator expansion and Capybara integration

21 changes.

This period focused on expanding RSpec's generator capabilities to support new Rails components like ActiveJob and feature specs, while introducing automatic Capybara integration for browser-based testing. The work also included significant updates to test infrastructure, CI scripts, and documentation generation to improve developer workflow and test reliability.

2015–2024 — Rails 8 and Action Cable support

16 changes.

This period focused on extending RSpec Rails to support Rails 8 features, including new generators for authentication, generators, mailboxes, and Action Cable channels. It also introduced dedicated matchers for testing Action Cable broadcasts and streams, alongside comprehensive test coverage and documentation for these new capabilities.

Features

Add RSpec generator for ActionMailbox mailboxes

Users can now generate RSpec test files for ActionMailbox mailboxes using the RSpec generator. This adds a new \mailbox\_generator\ and its corresponding ERB template, which creates a spec file in the \mailboxes\ directory with a pending example for the specified mailbox class.

lib/generators/rspec/mailbox · high confidence

Add RSpec request spec generator

Users can now generate request specs for their controllers using the new \rspec:request\ generator. This adds a dedicated generator class and template that create a basic request spec file (e.g., \requests/controller\_name\_spec.rb\) with a default GET request example, configurable via the \--request-specs\ option.

lib/generators/rspec/request, lib/generators/rspec/system · high confidence

Add RSpec-specific styling to generated documentation

The HTML documentation generator now includes a dedicated stylesheet for RSpec content. This change adds a new CSS file (\rspec.css\) that styles code blocks and deprecation notices with specific background colors, and updates the template setup to ensure this stylesheet is loaded when generating documentation.

yard · high confidence

Add feature spec generator with singularization option

A new generator for creating feature specs has been added to the RSpec tooling. Users can now generate feature spec files using the standard generator command. The generator includes a \--singularize\ flag that, when enabled, produces a singularized filename for the generated spec (e.g., \user\_spec.rb\ instead of \users\_spec.rb\) and uses a singular template, providing more control over naming conventions for feature tests.

lib/generators/rspec/feature · high confidence

Add generator for ActionCable channel specs

Users can now generate RSpec test files for ActionCable channels using the new channel spec generator. Running the generator creates a spec file (e.g., \channels/my\_channel\_spec.rb\) with a basic RSpec structure for the corresponding channel class, including a pending example to guide further testing.

lib/generators/rspec/channel · high confidence

Add generator for RSpec generator specs

Users can now generate RSpec generator specs using the \rails generate rspec:generator\ command. This new generator creates a spec file for the generated generator class, with the \--generator-specs\ option enabled by default to ensure specs are included in the output.

lib/generators/rspec/generator · high confidence

Added RSpec generator for ActiveJob specs

Users can now generate RSpec test files for ActiveJob classes using the RSpec generator. This new generator creates a spec file (e.g., \jobs/my\_job\_spec.rb\) with a basic structure including module namespacing and a placeholder example, allowing for immediate testing of job behavior.

lib/generators/rspec/job · high confidence

Added Rails 8 authentication generator for RSpec

A new generator has been added to create RSpec tests and fixtures for a User model, specifically tailored for Rails 8. When invoked, it generates a model spec file (user\_spec.rb) and, if fixture replacement is not enabled, a users.yml fixture file containing sample data with hashed passwords using BCrypt.

lib/generators/rspec/authentication · high confidence

Added benchmark for block invocation performance

A new benchmark script has been added to the benchmarks directory to measure the performance differences between using \yield\, capturing a block and yielding, and capturing a block and calling it. This benchmark helps evaluate the overhead of block handling in RSpec's routing and before-hook execution, providing data on how these methods scale with the number of invocations.

benchmarks · high confidence

Adds step definitions for conditional feature testing

A new step definition file provides helpers to conditionally skip tests when specific Rails components or versions are not present. Users can now write feature tests that automatically skip if Active Job, Action Cable, or Action Mailbox are unavailable, or if the application is running a version of Rails earlier than 8.0, ensuring test suites remain robust across different environments and dependency configurations.

_features/step\definitions · high confidence

Documentation for new and existing matchers

The \features/matchers\ directory now includes comprehensive Cucumber feature files documenting the usage of several matchers. New documentation covers \have\_been\_enqueued\ and \have\_been\_performed\ for verifying ActiveJob history, \have\_broadcasted\_to\ for ActionCable streams, \have\_stream\_from\ and \have\_stream\_for\ for channel subscriptions, and \send\_email\ for immediate mailer deliveries. Existing matchers \have\_enqueued\_job\, \have\_enqueued\_mail\, \have\_http\_status\, \have\_performed\_job\, \redirect\_to\, \render\_template\, \be\_a\_new\, and \match\_array\ (for ActiveRecord::Relation) also have updated or newly added feature specifications detailing their scenarios and aliases.

features/matchers · high confidence

Introduce in-memory model support for the no-ActiveRecord example app

The no-ActiveRecord example app now includes a functional in-memory model implementation (InMemory::Model) that provides ActiveRecord-like persistence using an internal array, allowing generated models to function without a database. This change adds a corresponding Rails generator to create these in-memory models, configures Zeitwerk to ignore the generator file to prevent autoload errors, and includes verification tests to ensure ActiveRecord is not loaded and that fixture file uploads work correctly within this isolated environment.

_example\_app\_generator/no\_active\record · high confidence

Introduce mailer specs with type tagging and URL helper support

This change adds documentation and feature specifications for the new mailer spec support. Users can now write mailer tests by tagging examples with \type: :mailer\, which wraps ActionMailer::TestCase behavior with RSpec expectations. The included examples demonstrate that mailer specs automatically have access to URL helpers, allowing tests to verify URL generation with or without default host configurations.

_features/mailer\specs · high confidence

Mailer generator now creates preview files when supported

The RSpec mailer generator has been updated to automatically generate a mailer preview file (e.g., \mailer\_preview.rb\) in the \mailers/previews\ directory, provided the environment supports ActionMailer::Preview. This change ensures that generated mailer specs are accompanied by the necessary preview infrastructure, improving the out-of-the-box experience for testing email delivery.

lib/generators/rspec/mailer · high confidence

New Action Cable RSpec matchers for testing broadcasts and streams

Added \have\_broadcasted\_to\ and \have\_streams\ matchers to the RSpec Rails gem, enabling users to verify that Action Cable channels broadcast messages to specific streams and to check which streams a subscription is currently active on. The \have\_broadcasted\_to\ matcher supports filtering by data payload, counting expectations (e.g., \exactly\, \at\_least\), and block-based assertions, while \have\_streams\ adapts to Rails 8.2+ by using \stream\_names\ instead of \streams\ for stream extraction.

_lib/rspec/rails/matchers/action\cable · high confidence

New and refactored RSpec Rails matchers

This release introduces several new matchers and refactors existing ones to improve testing capabilities for Rails applications. New matchers include \have\_broadcasted\_to\ for ActionCable streams, \receive\_inbound\_email\ for ActionMailbox routing, \have\_http\_status\ for checking response codes (supporting numeric, symbolic, and generic statuses), \be\_a\_new\ for verifying new model instances with optional attribute checks, \be\_new\_record\ for checking record persistence state, \be\_valid\ for model validation, \have\_enqueued\_mail\ for verifying mailer jobs, \send\_email\ for checking sent email attributes, and \have\_rendered\ (renamed from \render\_template\) for template rendering. The \route\_to\ matcher now delegates to \assert\_recognizes\ and parses query parameters using \Rack::Utils.parse\_nested\_query\. Existing ActiveJob matchers (\have\_enqueued\_job\, \have\_been\_enqueued\, etc.) have been refactored to use a new \BaseMatcher\ class, support composable matchers, and include better error messages and signature verification. The \MatchArray\ matcher has been aliased to \ContainExactly\ for RSpec 4 compatibility.

lib/rspec/rails/matchers · high confidence

New controller generator with configurable spec types

The RSpec Rails gem now includes a dedicated controller generator that allows users to customize which types of specs are generated when creating a new controller. By default, it generates request specs and view specs, but users can opt out of view specs or opt in to controller specs and routing specs using command-line flags like --no-view-specs, --controller-specs, or --routing-specs. This provides more granular control over the generated test suite structure.

lib/generators/rspec/controller, lib/generators/rspec/scaffold · high confidence

New railtie integrates RSpec with Rails 8+ stats and Action Mailer previews

The library now includes a dedicated railtie (lib/rspec-rails.rb) that automatically registers the spec directory for Rails 8+ code statistics reporting and configures Action Mailer preview paths in development environments. It also ensures RSpec generators are visible in usage docs and loads the RSpec rake tasks via the railtie instead of generating files, providing a more integrated experience for modern Rails versions.

lib · high confidence

New routing spec matchers and DSL shortcuts

Routing specs now support the \be\_routable\ matcher to verify whether a path is routable (useful for ensuring routes are absent) and the \route\_to\ matcher, which accepts a new shortcut syntax using \get(path)\ and string-based controller/action targets (e.g., \"controller\#action"\) alongside the existing verbose hash syntax. The feature also adds support for specifying custom routesets via a \routes\ block, enabling testing of isolated Rails engine routes, and provides access to named route helpers within routing specs.

_features/routing\specs · high confidence

New specialized example groups for Rails components

RSpec Rails now provides dedicated example groups for testing specific Rails features, including channels, jobs, mailboxes, and feature specs. These new modules (ChannelExampleGroup, JobExampleGroup, MailboxExampleGroup, FeatureExampleGroup) integrate with their respective Rails testing behaviors (ActionCable, ActiveJob, ActionMailbox, Capybara) and expose specific matchers and DSLs, such as \have\_streams\ for channels and \have\_been\_delivered\ for mailboxes, allowing for more structured and type-safe testing of these components.

lib/rspec/rails/example · high confidence

New view generator for RSpec

A new \rspec:install\ generator has been added to create view specs. This generator accepts action names as arguments and an optional \--template-engine\ flag to specify the view template engine (e.g., erb, slim). It creates an empty directory for the view specs and generates individual spec files for each specified action, named according to the action and template engine.

lib/generators/rspec/view · high confidence

Behavioural changes

Add RSpec model generator for namespaced models

The RSpec model generator now correctly handles namespaced models by respecting the RSpec \default\_path\ configuration and fixing the fixtures path for such models. This ensures that generated model specs and optional fixture files are placed in the correct directory structure when models are defined within namespaces, improving compatibility with modern Rails and RSpec setups.

lib/generators/rspec/model · medium confidence

Automated RSpec rake tasks and code statistics registration

The RSpec Rails integration now automatically generates Rake tasks for each spec subdirectory (e.g., spec/models, spec/features) and registers these directories with Rails' CodeStatistics. This allows users to run specs for specific types (e.g., \rake spec:models\) and view coverage statistics for them, replacing the previous manual setup or static task definitions.

lib/rspec/rails/tasks · high confidence

Automatic Capybara integration for feature, system, and view specs

The library now automatically includes Capybara's DSL and matchers into RSpec example groups based on the spec type. Feature and system specs gain access to Capybara's DSL for browser interaction, while view, helper, mailer, controller, feature, and system specs automatically receive Capybara's RSpec matchers. If neither DSL nor matchers are defined, request and controller specs fall back to including the base Capybara module, ensuring consistent integration without requiring manual configuration in user specs.

lib/rspec/rails/vendor · high confidence

Conditional addition of \`should\` syntax to ActiveRecord CollectionProxy

The \should\ and \should\_not\ matchers are now added to \ActiveRecord::Associations::CollectionProxy\ only when RSpec 4 is not in use (specifically, when the \:should\ syntax is explicitly enabled in the configuration) and ActiveRecord is defined. This prevents errors in RSpec 4 environments where monkey-patching \should\ is no longer supported, while maintaining backward compatibility for users who still rely on the \should\ syntax with older RSpec versions.

lib/rspec/rails/extensions · high confidence

Document model spec behavior and configuration options

Added documentation and feature specifications for model specs, clarifying that they act as a thin wrapper around ActiveSupport::TestCase. The new content explains how to use the \type: :model\ tag or file location inference, details the default transactional behavior (and how to explicitly enable or disable it via \use\_transactional\_examples\), and confirms support for fixtures and verified doubles with dynamic column methods.

_features/model\specs · high confidence

Documentation for controller specs behavior and features

Adds comprehensive documentation for controller specs, including an overview of their purpose as RSpec wrappers for Rails functional tests, and detailed feature files covering view isolation (stubbing by default), enabling \render\_views\ (including global configuration and nested group behavior), using anonymous controllers with base class inference, bypassing \rescue\_from\ handlers, setting request headers, testing cookies, and specifying engine routes.

_features/controller\specs · high confidence

Enable automatic generation of helper specs by default

The RSpec helper generator now includes a \--helper-specs\ option that defaults to true, ensuring that helper specs are generated automatically when invoked by Rails. This change allows users to get immediate test coverage for their view helpers without needing to manually enable the feature or pass additional flags.

lib/generators/rspec/helper · high confidence

Introduce RSpec generator base class respecting default path configuration

A new base generator class (lib/generators/rspec.rb) is introduced for RSpec generators, which now respects the RSpec \default\_path\ configuration when determining target file paths. This ensures that generated files are placed in the directory configured by the user's RSpec setup rather than a hardcoded location. Additionally, a helper class for \GeneratedAttribute\ is added to correctly map text types to textarea inputs in generated forms.

lib/generators · high confidence

Introduce centralized RSpec Rails entry point

The library now provides a single \lib/rspec/rails.rb\ entry point that automatically loads all core adapters, extensions, matchers, fixture support, and Capybara integration. This simplifies setup by allowing users to require just \rspec/rails\ to enable the full suite of Rails-specific testing capabilities, replacing the need to manually require individual component files.

lib/rspec · high confidence

Introduces new CI build and development scripts

The project adds a suite of new shell scripts to standardize the local development and continuous integration workflows. \script/bundle\ replaces the previous \bundle install --binstubs\ approach by configuring a local gem path and generating binstubs. \script/run\_build\ orchestrates the full test suite, including binstub checks, spec execution, acceptance tests, and conditional snippet and documentation coverage checks. \script/run\_rubocop\ isolates style and linting checks into a dedicated step. \script/clone\_all\_rspec\_repos\ automates cloning the monorepo components, while \script/update\_rubygems\_and\_install\_bundler\ handles environment setup with version-specific logic for Ruby 3.2+. Helper functions in \script/functions.sh\ provide utilities for CI retries, folding output, and checking documentation coverage.

script · high confidence

Isolated Cucumber test environment with Aruba and Capybara support

The Cucumber test suite now uses Aruba to run feature specs in an isolated, temporary workspace rather than against the main project directory. This ensures that generated example apps and test artifacts do not interfere with the development environment. The setup includes a custom \env.rb\ that configures Aruba with specific exit timeouts (30 seconds, or 120 for TruffleRuby) and handles bundler environment isolation. Additionally, a new \capybara.rb\ support file ensures the Capybara library is loaded only when scenarios are tagged with \@capybara\.

features/support · high confidence

New example app generator structure and verification specs

The example\_app\_generator has been restructured to include a comprehensive set of verification specs that validate the generated application's behavior. This includes tests for Active Record integration, custom renderers, fixture load order, and fixture warnings. The generator now creates a sample app with various controllers, models, scaffolds, and mailers, and runs a full suite of specs to ensure compatibility and correctness across different Rails configurations.

_example\_app\generator · high confidence

RSpec Rails 8.1.0 pre-release introduces new configuration and adapter architecture

This release (v8.1.0.pre) restructures the library's internal architecture by introducing new modules for configuration (\lib/rspec/rails/configuration.rb\), adapters (\lib/rspec/rails/adapters.rb\), and feature detection (\lib/rspec/rails/feature\_check.rb\). It adds support for new spec types including Action Cable channels, Action Mailbox, and system tests, and introduces new matchers such as \have\_http\_status\, \be\_a\_new\, and \be\_valid\. The release also updates fixture handling to support Rails 7.1's \ActiveStorage::FixtureSet\ and configures automatic spec type inference based on file location via \infer\_spec\_type\_from\_file\_location!\.

lib/rspec/rails · high confidence

Refactored rspec:install generator to delegate initialization to rspec-core

The rspec:install generator has been rewritten to rely on RSpec::Core::ProjectInitializer for generating the core spec files (spec\_helper.rb, .rspec) into a temporary directory before copying them to the application, rather than copying static template files directly. This change ensures the generated files align with the current rspec-core project structure and removes the generation of obsolete files like autotest/discover and script/rspec. The generator now also explicitly removes the 'config.warnings = true' line from spec\_helper.rb and updates the command reference from 'rspec --init' to 'rails generate rspec:install'.

lib/generators/rspec/install · high confidence

Restructured and updated RSpec Rails documentation

The documentation has been reorganized into a new directory structure with a dedicated navigation file (.nav) to improve discoverability. Key guides such as Getting Started, Generators, and Transactions have been updated to reflect current practices, including support for Rails 7.2 and the removal of legacy version-specific checks. New feature documentation has been added for file fixtures (supporting Rails 5+ and ActiveStorage) and rails stats (ensuring spec directories are found from any working directory).

features · high confidence

Standardize development environment with shared RSpec configuration files

The project now includes standardized configuration files generated from the rspec-dev monorepo to align the development environment with other RSpec projects. This adds \.rubocop.yml\ and \.rubocop\_rspec\_base.yml\ to enforce consistent code style using the shared RSpec base configuration, \.rspec\ to set default CLI flags (warnings, spec\_helper), \.yardopts\ for documentation generation, \.document\ to define public API surfaces, and \.gitignore\ to exclude build artifacts and local environment files. These changes ensure that local development, linting, and documentation builds behave consistently with the rest of the RSpec ecosystem.

(repo-wide) · high confidence

Updated mailer spec generator with preview support and modern syntax

The mailer spec generator now produces specs using the modern \expect\ syntax and requires \rails\_helper\ instead of \spec\_helper\. It also generates a new mailer preview class to allow email rendering in the browser, and includes a fixture template for mailer content. The generated spec supports module namespacing and explicitly sets the type metadata for mailers.

lib/generators/rspec/mailer/templates · high confidence

View specs now infer controller path and action from file location

View specs (files in spec/views or marked with type: :view) now automatically infer the controller path and action from the file being rendered. For example, a spec for 'widgets/new' will have controller.request.path\_parameters\[:controller\] set to 'widgets' and the action set to 'new', while partials like '\_form' will have a nil action. This allows view specs to access URL helpers and controller context without manually setting these values, making specs more concise and aligned with how Rails resolves views in production.

_features/view\specs · high confidence

Test coverage

Add RSpec feature spec templates; Add specs for Rails example group mixins; Added Action Cable channel and connection spec examples; Added Cucumber feature spec for Capybara integration; Added RSpec model spec and fixture templates; Added feature specs for generator output verification; Added feature tests for helper specs; Added feature tests for model mocking integration; Added generator specs for mailer generation; Added generator specs for scaffold request and controller templates; Added helper spec generator template; Added mailbox spec tests for email routing and processing; Added new testing snippets for specific RSpec configurations; Added request spec documentation with integration test examples; Added spec infrastructure and sanity checks; Added spec support helper for Action Mailer preview configuration; Added specs for Rails matchers; Added test coverage for RSpec Rails core components; Added test infrastructure for spec type inference and generator testing; Added tests for Action Cable broadcast and stream matchers; Added tests for controller, helper, and routing generator specs; Added tests for job spec documentation and matchers; Added tests for the ActiveJob generator; Added tests for the RSpec install generator; Added tests for the generator generator spec output; Added verification specs for example app generator behavior; Added whitespace validation tests for RSpec::Rails; New spec templates for controller, request, routing, and view specs; Updated rails\_helper.rb template for modern Rails and RSpec conventions; Updated scaffold generator templates for modern RSpec and Rails compatibility.

Dependencies

Update gemspec to require Ruby 3.0+ and Rails 7.2+, and restructure Gemfile

The gemspec now requires Ruby version 3.0.0 or higher and sets the runtime dependency for Rails components (actionpack, activesupport, railties) to version 7.2 or higher, effectively dropping support for older Rails and Ruby versions. The Gemfile has been restructured to use a centralized source (gem.coop), include specific development dependencies like yard, rubocop, and capybara, and dynamically evaluate custom and Rails-specific dependency files.

(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

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 54 → 78 (+23.9)
  • Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 99 (-1.2)
  • Architecture 94 → 97 (+2.4)
  • Maturity 57 → 67 (+10.1)
  • Readiness 35 → 79 (+44.1)
  • Security 76 → 95 (+19.1)

Resolved (12)

  • Coverage not measured — test suite did not build
  • Dimension evaluation failed
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • LLM evaluation failed
  • No exposed public API
  • No tests found
  • Test reliability not included

New (6)

  • Duplicate intent for new record checking. be_a_new and be_new_record appear to serve the same purpose (checking if an object is a new, unsaved record). While be_a_new might take a class argument, be_new_record is the standard RSpec/Rails predicate for this state. Having both without clear domain separation (e.g., one for class-specific validation vs generic state) is confusing.
  • HackComment (lib/rspec/rails/matchers/have_http_status.rb)
  • Medium: security finding (details withheld)
  • Orphaned files with no living knowledge
  • Redundant property/method pair for state checking. persisted is exposed as a Property while persisted? is exposed as a Method. In most Ruby/ORM contexts, persisted? is the standard predicate method, and persisted is often a column attribute. Exposing both as distinct API entries creates confusion about which one to use for state checks.
  • TooManyMethods: Base (lib/rspec/rails/matchers/active_job.rb)

Changes since last survey

  • 21 commits — 17 feature/other, 4 fixes

By area

  • (repo) — 7 commits
  • (root) — 5 commits
  • .github/workflows — 3 commits
  • lib/rspec — 3 commits
  • spec/rspec — 2 commits
  • spec/generators — 1 commit

Notable commits

  • fix: Fix a Thor-related issue (#2916)
  • fix: Merge pull request #2909 from rspec/fix-have-streams-matcher
  • fix: Merge pull request #2910 from rspec/fix-snippet-build
  • fix: Merge pull request #2911 from rspec/fix-active-job-spec
  • change: Assign default_url_options instead of mutating it
  • change: Bump ruby/setup-ruby from 1.321.0 to 1.324.0
  • change: Changelog for #2909
  • change: Cleanup unused version flag
  • change: Fix indentation in Changelog.md
  • change: Handle change to stream_names in Rails 8.2
  • change: Handle connection_class changes in Rails 8.2
  • change: Handle frozen view path prefixes array on Rails main (#2915)
  • change: Harden CI (#2920)
  • change: Let the GlobalID test double be looked up with where
  • change: Merge pull request #2907 from federico-carrocera/fede/frozen-default-url-options
  • change: Merge pull request #2921 from rspec/dependabot/github_actions/ruby/setup-ruby-1.324.0
  • change: Merge pull request #2922 from rspec/pin-json
  • change: Pin JSON
  • change: Pin actions to shas
  • change: Rework spec checking for active job leaks to handle new ActiveJob::TestHelper implementation (#2919)
  • …and 1 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

rspec/rspec-rails 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 26 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 9ea606cf5e30c4c8278d73ff9327c07046c11f63 — 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-7c1cb6328e11.