activescaffold/active_scaffold
46.9
Weak · 20 September 2026
14.1k
lines of production code
Ruby
with JavaScript
1
measurement over time
What this system is
Active Scaffold is a Ruby gem that automates the generation of CRUD interfaces for Rails applications, supporting both ActiveRecord and Mongoid data models. It provides a modular architecture with configurable UI components, extensive integration bridges for file storage and third-party libraries, and granular security controls. The system handles complex data interactions including nested records, hierarchical structures, and advanced search filtering.
How it got here
2007–2009 — Modular architecture and test infrastructure
18 changes.
This period focused on refactoring ActiveScaffold's internal structure into a modular action architecture with per-action configuration classes and dedicated data structure modules. Concurrently, a comprehensive test suite was established using mock Rails applications to validate these changes, alongside the migration from Prototype.js to unobtrusive JavaScript and the introduction of a granular security model.
2010–2011 — Modernization and bridge architecture
19 changes.
ActiveScaffold underwent a major architectural overhaul to support Rails 7.2 and Ruby 3.2, replacing legacy extension mechanisms with a modular bridge system for plugins and integrations. This period focused on refactoring core rendering, routing, and error handling to ensure compatibility with modern Rails features while updating all file attachment bridges to remove deprecated dependencies like Prototype and jQuery UI legacy patterns.
2012–2024 — Modernization and bridge expansion
18 changes.
This period focused on modernizing the ActiveScaffold codebase to support recent Rails versions, including a complete rewrite of view templates and updates to asset pipelines. It also significantly expanded the library's capabilities by introducing new bridges for features like Bitfields, Chosen, PaperTrail, and Active Storage, while refactoring association logic for better ORM support.
2025–2026 — Propshaft compatibility and asset modernization
8 changes.
This period focused on modernizing the Active Scaffold asset pipeline to support both Propshaft and Sprockets, including a rewrite of JavaScript and CSS assets to use CSS variables and secure loading mechanisms. The work also introduced new Rails generators for scaffolding resources and controllers, alongside enhanced text search capabilities via a new logical query parser.
Features
Add Active Storage bridge for file attachments
This change introduces a new bridge in the Active Scaffold library to support Rails Active Storage associations. It enables the scaffold to automatically detect and configure \has\_one\ and \has\_many\ Active Storage fields, providing form inputs for uploading files and list views that display attachment links or counts. The implementation includes helpers for deleting attachments, supports thumbnail variants for images, and ensures security best practices by adding \rel="noopener noreferrer"\ to links opening in new tabs.
_lib/active\_scaffold/bridges/active\storage · high confidence
Add Ancestry bridge with configurable label method
Introduces a new bridge for the Ancestry gem that automatically configures the parent\_id column for ancestry-based hierarchies. The bridge excludes the raw ancestry column from list, create, and update views, replacing it with a specialized ancestry form UI. A key addition is support for the :label\_method option, allowing users to specify which method is used to display node labels in the hierarchy selector (defaulting to :to\_label).
_lib/active\scaffold/bridges/ancestry · high confidence
Add Chosen-based UI for plural associations and search
Users can now use the Chosen library for selecting multiple associated records in forms and for search filters. This change introduces the :chosen and :multi\_chosen form and search UIs, replacing the default checkbox list for plural associations with a more user-friendly dropdown interface. It supports features like optgrouping, custom label methods, and adding new records directly from the selection field.
_lib/active\scaffold/bridges/chosen · high confidence
Add PaperTrail bridge for viewing deleted records
Introduces a new PaperTrail bridge that adds a 'deleted\_records' action to ActiveScaffold models using PaperTrail. This feature allows users to list and view previously deleted records by querying PaperTrail versions, with support for nested listings and configurable link labels/groups. The implementation includes the necessary actions, configuration, and helper methods to integrate this functionality seamlessly.
_lib/active\_scaffold/bridges/paper\trail · high confidence
Added Bundler-generated binstubs for development and security tools
The project now includes a comprehensive set of executable binstubs in the \bin/\ directory, generated by Bundler to ensure consistent invocation of gems regardless of the global environment. These scripts provide direct access to development and security utilities, including \brakeman\, \bundle-audit\, \rubocop\, \i18n-tasks\, \rails\, \rake\, \rspec\ (via \bundle\), and various other tools like \nokogiri\, \erubis\, and \thor\. This change allows users to run these commands directly from the repository root without relying on system-wide gem installations.
bin · high confidence
Added asset generators for CSS dependencies and jQuery UI themes
Active Scaffold now includes new generators to automatically produce and manage asset files. The \CssDepsGenerator\ creates a \deps.scss\ file that imports required stylesheets, while the \JqueryUiThemeGenerator\ processes and writes the jQuery UI theme CSS, handling version-specific dependencies via the new \JqueryUiManifest\ module. This ensures that necessary CSS assets are correctly generated and kept in sync with the application's dependencies.
_lib/active\scaffold/assets · high confidence
Added blank.html for Internet Explorer DHTML history support
A new blank.html file has been added to the public directory to support Internet Explorer's hidden IFrame requirement for the DHTML history management system. This file, based on Brad Neuberg's open-source implementation, initializes the history iframe when loaded, enabling browser back/forward button functionality for the application in older IE versions.
public · high confidence
Added jQuery UI Timepicker Addon and utility libraries
The application now includes the jQuery UI Timepicker Addon (v1.6.3) in vendor assets, enabling time selection capabilities for date and datetime inputs. Additionally, the jQuery throttle/debounce plugin (v1.1) and the jQuery visible plugin have been added to support performance optimization for event handlers and viewport visibility checks, respectively.
vendor/assets/javascripts · high confidence
Initial project scaffolding and configuration
The repository is initialized with essential configuration files including a RuboCop setup targeting Ruby 3.2, a .gitignore for standard development artifacts, and a CHANGELOG documenting the history up to version 4.3.2. The project structure includes a Rakefile for testing and documentation, a Contributor Covenant Code of Conduct, and a README detailing installation and usage for Rails 7.2+ and Ruby 3.2+.
(repo-wide) · high confidence
Introduce Bitfields bridge for composite checkbox columns
Adds a new Bitfields bridge that allows defining composite columns backed by multiple boolean bit-fields. In forms (create, update, show, subform), these bit-fields are displayed as checkboxes within a subgroup rather than as number columns, and in list views, the selected bit-field labels are joined and displayed as a comma-separated string.
_lib/active\scaffold/bridges/bitfields · high confidence
Introduce configurable HTML element tags and attributes for UI rendering
ActiveScaffold now exposes a global \ui\_elements\ configuration hash that allows users to customize the HTML tags and attributes (such as classes) used for various UI components like list headers, forms, subforms, and action links. This change enables developers to alter the visual structure and styling hooks of the generated markup without modifying the underlying JavaScript or core functionality, providing greater flexibility for theming and layout adjustments.
lib · high confidence
New Rails generators for Active Scaffold resources and controllers
Added new generator classes (\ControllerGenerator\, \ResourceGenerator\, \InstallGenerator\) and their associated templates and usage documentation to \lib/generators/active\_scaffold\. The \resource\ generator now scaffolds a complete resource (model, migration, controller, tests) configured for Active Scaffold, specifically injecting routes using the \concerns: :active\_scaffold\ pattern to support Rails 7.1+ routing conventions. The \controller\ generator stubs out controllers and helpers, while the \install\ generator handles asset pipeline integration (Importmap, Sprockets, and JavaScript packs) and route concerns setup.
lib/generators · high confidence
New Rake tasks for Brakeman, bundle locking, and mock app management
Added three new Rake task files to streamline development and security workflows. The \brakeman.rake\ file introduces tasks to run the Brakeman security scanner and exit with an error code if warnings are found. The \bundle.rake\ file provides a task to lock all Gemfiles in the \gemfiles\ directory. The \mock\_app.rake\ file adds tasks to build stylesheets using Dart Sass, start the mock app server with a Sass watcher, and launch the mock app console.
lib/tasks · high confidence
New USA State Select bridge for form and search inputs
Users can now use a dedicated USA State select widget in Active Scaffold forms and search interfaces. This change introduces the \usa\_state\_select\ bridge, which provides helper methods to render a \\<select\>\ element populated with all 50 US states and the District of Columbia. The bridge supports prioritizing specific states at the top of the list and integrates with Active Scaffold's column configuration for both input and search contexts. It includes compatibility logic to work with both older Rails versions (using \ActionView::Helpers::InstanceTag\) and newer ones (using \ActionView::Helpers::Tags::Base\).
_lib/active\_scaffold/bridges/usa\_state\select · high confidence
New fine-grained security model for ActiveRecord models
Active Scaffold now includes a new \ActiveRecordPermissions\ module that allows you to define instance methods in your ActiveRecord models to restrict access per-model, per-record, per-column, per-action, and per-user. This module supports English-based methods like \\#{column}\_authorized\for\\#{action}?\ and \authorized\for\\#{action}?\, and includes a \ModelUserAccess\ module to make the current user available to ActiveRecord models for permissions. The \Permissions\ module provides a generic \authorized\_for?\ method that intelligently combines multiple applicable methods, and supports caching of security methods for performance. This change enhances the security capabilities of Active Scaffold by providing a more flexible and granular way to control access to your data.
_lib/active\scaffold · high confidence
New record\_select bridge helpers for form and search UIs
The record\_select bridge now includes dedicated helper modules (FormColumnHelpers and SearchColumnHelpers) that render the appropriate UI components based on association type. Singular associations use the standard record select, collection associations force multiple selection, and non-association columns fall back to autocomplete. The helpers also support an :add\_new option to append an 'add new' interface for associations and ensure search fields correctly restore previously selected values.
_lib/active\_scaffold/bridges/record\select · high confidence
Support for 'all tokens' and 'any token' text search operators
The LogicalQueryParser bridge now supports searching text columns using 'all tokens' and 'any token' operators. This is implemented via a new Treetop grammar (tokens\_grammar.treetop) and associated parser classes (KeywordQueryParser, TokensGrammar::Parser) that parse natural language input into SQL conditions, allowing users to refine search results by requiring all specified words or any of them.
_lib/active\_scaffold/bridges/logical\_query\parser · high confidence
Support for separators in action links
Users can now insert visual separators between action links in the Active Scaffold interface. This is implemented via a new \ActionLinkSeparator\ class that defines separator behavior, allowing for better organization and readability of action menus.
_active\scaffold · high confidence
Architecture
New modular action architecture for ActiveScaffold
ActiveScaffold has been refactored to use a modular action architecture, replacing the previous monolithic controller structure with distinct modules for core functionality, search, field search, create, and delete. This change introduces new modules like CommonSearch and FieldSearch that handle search parameter storage, authorization, and grouped search logic, while core actions are now isolated in their own files (create.rb, delete.rb, etc.). Users will experience improved code organization and maintainability, with specific behaviors like search parameter persistence, grouped search capabilities, and CRUD action handling now managed through these dedicated modules. The refactoring also includes new helper methods for embedded and nested scaffolds, and improved security filtering for search actions.
_lib/active\scaffold/actions · high confidence
Refactored association data structures into separate ORM-specific classes
The association handling logic in \lib/active\_scaffold/data\_structures/association\ has been restructured to use distinct classes for ActiveRecord, Mongoid, and ActiveMongoid instead of conditional checks. This change introduces an \Abstract\ base class and specific implementations (\ActiveRecord\, \Mongoid\, \ActiveMongoid\) to better support different ORM behaviors, such as polymorphic associations, reverse association detection, and specific Mongoid macro mappings, while removing support for Rails versions older than 6.1.
_lib/active\_scaffold/data\structures/association · high confidence
Restructured data structures for columns, actions, and associations
The internal data structures for Active Scaffold have been reorganized into dedicated classes within the \lib/active\_scaffold/data\_structures\ directory. This change introduces specific classes for managing column sets (\ActionColumns\, \Columns\), action links (\ActionLink\, \ActionLinks\), and association metadata (\Association\), along with new structures for filters (\Filter\, \Filters\) and nested scaffold information (\NestedInfo\). This reorganization centralizes the configuration logic, separating concerns for columns, actions, and associations to improve maintainability and clarity of the scaffold's internal state management.
_lib/active\_scaffold/data\structures · high confidence
Behavioural changes
Active Scaffold configuration system restructured into per-action classes
The configuration logic for Active Scaffold has been refactored from a monolithic structure into distinct, per-action classes (Create, Update, Delete, List, Search, Show, Nested, Subform, FieldSearch, and Mark) inheriting from a shared Base class. This change introduces a dedicated UserSettings mechanism for each action, allowing users to persist and override settings like sorting, pagination, and search parameters per request or in the session. It also standardizes how action links, columns, and security methods are defined and accessed, improving thread safety and modularity while maintaining backward compatibility for global and instance-level configuration options.
_lib/active\scaffold/config · high confidence
Add configuration for Brakeman and i18n-tasks security/lint tools
The application now includes configuration files for the Brakeman security scanner and the i18n-tasks internationalization tool. Brakeman is configured to run all checks quietly, with specific warnings (such as MD5 usage in ActiveScaffold) explicitly ignored to reduce noise. The i18n-tasks tool is set up to scan the app and lib directories for translation usage, ignoring missing keys that are part of standard Rails i18n and unused keys from ActiveScaffold.
config · high confidence
Cancan bridge adds action aliases, scoped association filtering, and model-level ability access
The CanCan bridge now supports defining aliases for Active Scaffold actions (e.g., mapping list/show\_search to read) via Ability\#as\_action\_aliases, filters association select options by CanCan read permissions to fix issue \#304, and enables ActiveRecord models to access the current user's ability for permission checks. It also fixes record creation when access is based on specific IDs (fixes \#617) by ensuring new records have nil IDs before super, and integrates authorization into the beginning\_of\_chain and authorized\_for? hooks to enforce CanCan rules alongside default Active Scaffold behavior.
_lib/active\scaffold/bridges/cancan · high confidence
Carrierwave bridge now supports thumbnail display and secure link attributes
The Carrierwave bridge has been refactored to improve file handling in the UI. List views now attempt to display a thumbnail for uploaded files using a configurable style (defaulting to :thumbnail), falling back to the filename if the style is unavailable. Form inputs now correctly handle cache and removal fields for Carrierwave uploads. Additionally, links to uploaded files in list views now include rel="noopener noreferrer" for improved security when opening in new tabs.
_lib/active\scaffold/bridges/carrierwave · high confidence
Centralized JavaScript asset loading via ActiveScaffold::Assets
The main ActiveScaffold JavaScript manifest has been rewritten to dynamically load required scripts through the \ActiveScaffold::Assets.active\_scaffold\_javascripts\ collection instead of hardcoded paths. This change also adds conditional logic to include jQuery UI localization files when jQuery UI is detected as included, ensuring proper internationalization support for UI components.
app/assets/javascripts · high confidence
Complete rewrite of ActiveScaffold view templates to use as\_element helpers
The view templates in app/views/active\_scaffold\_overrides have been completely rewritten to replace inline HTML generation with the as\_element helper system. This change standardizes the rendering of forms (create, update, add\_existing), lists (with pagination, calculations, and messages), subforms (horizontal and vertical layouts), and search interfaces. By centralizing HTML structure and attributes through as\_element, the update improves consistency across the UI, simplifies customization for UI framework integration, and ensures proper handling of AJAX responses and loading indicators.
app/views · high confidence
Country select bridge now uses the country\_select gem
The country select functionality has been refactored to act as a bridge for the external \country\_select\ gem, replacing the previous internal implementation. This change updates how country inputs are rendered in forms, lists, and search interfaces by delegating to the gem's \country\_select\ helper, while maintaining backward compatibility for the legacy 'old' format that saves country names instead of codes. Users will see consistent behavior across input, list display, and search operations, with support for priority countries and locale-aware translations provided by the underlying gem.
_lib/active\_scaffold/bridges/country\select · high confidence
File column bridge refactored to support modern Rails and Ruby versions
The file column bridge has been completely rewritten to remove the deprecated Prototype JavaScript framework and replace legacy Ruby patterns (like alias\_method\_chain) with modern equivalents (prepend, method\_defined?). This update ensures compatibility with Ruby 2.0+ and newer Rails versions by eliminating Rails 5 warnings and optimizing list rendering for a 50% speedup. Users will experience improved performance and stability when managing file uploads, with the bridge now correctly handling multipart forms, file deletion helpers, and UI options (thumbnails, download links) without relying on obsolete JavaScript libraries.
_lib/active\_scaffold/bridges/file\column · high confidence
New bridge architecture for plugins and integrations
Active Scaffold has restructured its plugin system into a modular 'bridges' architecture, moving integrations for libraries like Active Storage, Ancestry, Bitfields, CanCan, CarrierWave, Chosen, Country Select, Date Picker, Dragonfly, File Column, Logical Query Parser, Paper Trail, Paperclip, Record Select, Semantic Attributes, TinyMCE, and USA State Select into dedicated bridge classes. This change centralizes installation logic, asset loading, and configuration callbacks for each integration, allowing users to enable specific features by requiring their respective bridge files rather than relying on monolithic or scattered plugin setups.
_lib/active\scaffold/bridges · high confidence
New date and datetime picker bridges with improved localization and search support
This change introduces dedicated \date\_picker\ and \datetime\_picker\ bridges for ActiveScaffold, replacing the previous generic datetime handling. For users, this means date and timestamp columns now automatically use specialized UI components (form and search) that better respect locale-specific formats and timezones. The bridges provide robust I18n support by converting Rails date/time formats to jQuery UI/Timepicker formats, handling translations for days, months, and prompts. Search functionality is enhanced to support operators and multiple database columns, while the UI helpers ensure that values are correctly localized to the user's timezone in both form inputs and search fields. The implementation also improves compatibility with modern Ruby versions and Rails by removing deprecated methods and ensuring CSP compliance.
_lib/active\_scaffold/bridges/date\picker · high confidence
Refactored Paperclip bridge UI and deletion logic
The Paperclip bridge has been restructured to improve file handling and deletion behavior. The form UI now correctly passes options to the file input helper, ensuring consistent rendering. The list UI has been updated to display thumbnails when available (using the configurable \thumbnail\_style\) and links to the original file, with \alt\ text removed for cleaner display. Crucially, the deletion helper logic has been refined to prevent accidental file deletion when a new file is uploaded alongside a delete request, addressing a bug where nested model inputs were incorrectly handled.
_lib/active\scaffold/bridges/paperclip · high confidence
Refactored rendering, routing, and error-handling extensions
ActiveScaffold replaces its legacy extension mechanism with a set of new, modular files in lib/active\_scaffold/extensions. The rendering pipeline now uses Ruby prepend to wrap ActionController::Base and ActionView::RenderingHelper, enabling safer embedded scaffold rendering, improved :super template resolution, and better compatibility with Rails 6+ renderable objects (ViewComponent, Turbo Streams). Routing is now driven by explicit mapper classes (Basic and Association) that define core and association routes, supporting nested and scoped scaffolds. Error handling is updated to preserve validation errors across association saves via a new keeping\_errors method, and access denial now returns 403 Forbidden. Database adapter extensions ensure correct SQL ordering for PostgreSQL and SQLServer, while paginator and datetime helpers are adjusted for modern Rails behavior.
_lib/active\scaffold/extensions · high confidence
Remove Prototype.js framework and migrate to unobtrusive JavaScript
The Prototype.js library and the \js\_framework\ configuration setting have been removed from the helpers. The scaffolding now relies on unobtrusive JavaScript (UJS) for all interactions, including inline editing, nested scaffolds, and action links. This change eliminates the dependency on the legacy Prototype framework, simplifying the asset pipeline and improving compatibility with modern JavaScript environments.
_lib/active\scaffold/helpers · high confidence
Restructured Dragonfly bridge with configurable thumbnails and secure links
The Dragonfly attachment bridge has been reorganized into dedicated files (bridge, helpers, form UI, list UI) to improve maintainability. Users can now customize thumbnail generation via the new \ActiveScaffold::Bridges::Dragonfly::DragonflyBridgeHelpers.thumbnail\_style\ accessor (defaulting to 'x30\>'). Additionally, links to attachments in list views now include \rel="noopener noreferrer"\ for security, and the bridge supports overriding the URL retrieval method via the \private\_store\ option to choose between \url\ and \remote\_url\.
_lib/active\scaffold/bridges/dragonfly · high confidence
Semantic attributes bridge adds Column module to configure form UI and required status
The semantic attributes bridge now includes a new Column module that extends ActiveScaffold::DataStructures::Column via prepend. This module automatically sets the column's required status based on whether its semantic predicates allow empty values, and configures the form UI type by mapping semantic predicate classes to specific form UI identifiers (ignoring 'required' and 'association' types).
_lib/active\_scaffold/bridges/semantic\attributes · high confidence
TinyMCE bridge now configures editor via data attributes and supports column-specific options
The TinyMCE bridge has been refactored to write editor settings to a \data-tinymce\ attribute on the textarea instead of relying on the deprecated Prototype framework or jQuery-based loading. This change allows users to pass specific TinyMCE configuration options (such as theme overrides) directly through column options using the \:tinymce\ hash, while still respecting global configurations from \tinymce.yml\ via \:tinymce\_config\. The bridge also explicitly supports \:tinymce\ as a \:form\_ui\ value, ensuring consistent behavior across form, search, and show views.
_lib/active\_scaffold/bridges/tiny\mce · high confidence
Updated jQuery UI stylesheets and theme assets
The vendor stylesheets for jQuery UI have been updated to include the base framework CSS (v1.8.14), the specific 'Smoothness' theme styles, and the timepicker addon CSS (v1.6.3). This ensures that the visual appearance of jQuery UI components, including the timepicker widget, is correctly rendered with the updated theme assets and icon sprites located in the vendor directory.
vendor/assets/stylesheets · high confidence
Fixes
ActiveScaffold JavaScript assets rewritten for Propshaft and Sprockets compatibility
The ActiveScaffold JavaScript assets have been rewritten to support both Propshaft and Sprockets asset pipelines, introducing a new dynamic loading mechanism via \load.js\ that initializes components like jQuery UI, date pickers, and TinyMCE bridges. This update includes a security fix in \date\_picker\_bridge.js\ by replacing \eval\ with safer parsing to ensure compatibility with Content Security Policies that disallow \unsafe-eval\. Additionally, the draggable lists feature now correctly applies a hover class during drag operations, and the TinyMCE bridge has been updated to handle version 6+ initialization and proper cleanup.
_app/assets/javascripts/active\scaffold · high confidence
ActiveScaffold stylesheets rewritten for Propshaft and CSS variables
The ActiveScaffold asset pipeline has been updated to support both Propshaft and Sprockets, ensuring correct loading of the jQuery UI theme and assets. The styling system has been refactored to use CSS custom properties (variables) for colors and layout, replacing hardcoded values to allow easier customization. This includes new modular SCSS files for variables, layout, images, and colors, along with fixes for icon positioning, adapter close button styles, and overall color consistency.
_app/assets/stylesheets/active\scaffold · high confidence
Add Active Scaffold asset manifest for Rails 7 compatibility
A new manifest file has been added to the Active Scaffold asset configuration to ensure compatibility with the Rails 7 assets pipeline. This manifest explicitly links the directory's images, JavaScript, and CSS assets, allowing the framework's styles and scripts to be correctly included in the application.
app/assets/config · high confidence
Add Rake tasks for Propshaft-compatible asset generation
A new \lib/tasks/active\_scaffold/assets.rake\ file introduces Rake tasks (\generate\, \force\_generate\, \check\) to handle asset generation for Propshaft compatibility. These tasks invoke \JqueryUiThemeGenerator\ and \CssDepsGenerator\ to create or update jQuery UI theme CSS and a \deps.css\ file, ensuring assets are correctly processed when using the Propshaft asset pipeline.
_lib/tasks/active\scaffold · high confidence
Integrate Active Scaffold asset generation with Propshaft
A new Rake task file has been added to the Rails engine to hook into the \assets:precompile\ process when Propshaft is detected. This ensures that the jQuery UI theme and CSS dependencies are generated before asset compilation, fixing issues with asset loading in Propshaft-enabled applications.
_lib/active\scaffold/railties · high confidence
Updated ActiveScaffold stylesheets for modern asset pipelines and browser compatibility
The stylesheet assets have been restructured to support modern asset pipelines (Propshaft and Sprockets) by migrating to SCSS partials and explicit imports. A new IE-specific stylesheet (active\_scaffold-ie.scss) has been added to handle legacy browser quirks using proprietary filters and zoom hacks. The main layout stylesheet (active\_scaffold.scss.erb) now explicitly includes layout, images, and color variables. Additionally, a TinyMCE bridge stylesheet (tiny\_mce\_bridge.scss) has been introduced to properly hide underlying textareas when the editor is active, and a new Blue theme stylesheet (blue-theme.css) provides specific styling for headers and footers.
app/assets/stylesheets · high confidence
Test coverage
Added Rails executable script for mock application; Added environment configuration files for the test mock application; Added functional tests for FileColumn keep/delete behavior; Added mock application for testing ActiveScaffold features; Added mock model for file column tests; Added performance tests for car and people listing endpoints; Added test coverage for Action View rendering, ActiveRecord labeling, and routing mapper; Added test coverage for ActiveScaffold bridges; Added test database schema for mock application; Added test helper to verify embedded scaffold loading; Added test infrastructure and mock models for ActiveScaffold; Added test mock application configuration; Added test suite for misc ActiveScaffold components; Added unit tests for ActiveScaffold configuration classes; Added unit tests for ActiveScaffold helpers; Added unit tests for data structure components.
Dependencies
Add dedicated gemfiles for Rails 7.2, 8.0, 8.1, master, and linting
The project now includes specific gemfiles to support testing against Rails 7.2, 8.0, 8.1, and the Rails master branch, as well as a dedicated gemfile for linting and static analysis. These files configure the appropriate Rails versions, test dependencies (such as Mocha and SimpleCov), and platform-specific adapters (like JDBC for JRuby), enabling the library to be validated against a wider range of modern Rails environments and ensuring compatibility with upcoming releases.
gemfiles · high confidence
Initial release of ActiveScaffold gem targeting Rails 7.2+
This change introduces the initial gem specification and development environment for ActiveScaffold. The library now requires Ruby 3.2 or higher and supports Rails 7.2.0 and above, dropping support for older versions. It includes runtime dependencies on html\_attrs, ice\_nine, method\_source, and request\_store. The development setup includes tools for static analysis (Brakeman, RuboCop), testing (Mocha, Minitest, SimpleCov), and asset management (Dart Sass, Propshaft).
(dependencies) · high confidence
Housekeeping
Added action flow diagrams to the diagrams directory
The \diagrams\ directory has been created and populated with SVG flowcharts (e.g., \create.drawio.svg\, \destroy.drawio.svg\) that visualize the execution paths for core CRUD actions. These diagrams document the internal logic, including authorization checks, format handling (HTML/JS), and response rendering, serving as reference material for the system's behavior.
diagrams · 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 47.
Lenses
- Code Health 50
- Architecture 96
- Maturity 55
- Readiness 53
- Security 59
- Domain Modelling 100
- Accessibility 37
Changes since last survey
- 300 commits — 223 feature/other, 77 fixes
By area
- config/locales — 77 commits
- lib/active_scaffold — 64 commits
- (root) — 55 commits
- (repo) — 43 commits
- app/views — 13 commits
- app/assets — 8 commits
- .github/workflows — 6 commits
- .qlty/qlty.toml — 4 commits
- gemfiles/Gemfile.rails-7.2.x.lock — 4 commits
- lib/tasks — 4 commits
- gemfiles/Gemfile.lint.lock — 3 commits
- gemfiles/Gemfile.rails-8.0.x.lock — 3 commits
- test/mock_app — 3 commits
- .github/dependabot.yml — 2 commits
- gemfiles/Gemfile.rails-7.2.x — 2 commits
- gemfiles/Gemfile.rails-8.0.x — 2 commits
- lib/active_scaffold.rb — 2 commits
- test/misc — 2 commits
- gemfiles/Gemfile.lint — 1 commit
- test/data_structures — 1 commit
Notable commits
- fix: Fix cache column counts on PostgreSQL when the association has order
- fix: Fix jruby test
- fix: Fix language code in ta.yml
- fix: Fix list with ordering using sql functions and left joins in PostgreSQL
- fix: Revert "upgrade nokogiri"
- fix: Support defining more options for jQuery.sortable with ActiveScaffold.js_config[:draggable_lists_options] Fix draggable lists to set hover class on the list while dragging
- fix: Try to fix brakeman warning
- fix: cleaner fix and test
- fix: fix add existing, had a duplicated field
- fix: fix adding tab
- fix: fix adding tab
- fix: fix assigning reverse for has_many in recent rails versions, has_many_inversing already sets
- fix: fix brakeman alert without interpolating
- fix: fix bridges for propshaft
- fix: fix change on constraints methods
- fix: fix colours in new stylesheets
- fix: fix column types in tableless
- fix: fix column types in tableless for rails 8.1, independent of db adapter
- fix: fix delegating methods to @conf, but ensure better error is returned when calling for an action which is not set
- fix: fix detection of values coming from datetime-local (iso8601 format), avoids confusing with formats using named timezone such as HST
- …and 280 more
Architecture
- 0 containers · 1 bounded contexts · 0 dependency edges (baseline)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
activescaffold/active_scaffold 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 20 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 899bc638812ad67b1282604b5f086922587d8040 — 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.