This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
ActionVersionPreview is a Rails engine that enables side-by-side preview of multiple UI versions using Rails' native view variants. It provides zero-config integration via a concern auto-included in all controllers.
# Run all tests
bin/rails test
# Run a single test file
bin/rails test test/integration/variant_preview_test.rb
# Run a single test by line number
bin/rails test test/integration/variant_preview_test.rb:10
# Build the gem
bundle exec rake build
# Release to RubyGems (tags, pushes, publishes)
bundle exec rake release
# Start dummy app for manual testing
bin/rails serverlib/action_version_preview.rb- Main module with configuration (param_name,access_check)lib/action_version_preview/engine.rb- Rails engine that auto-includes ControllerMethods in ActionController::Baselib/action_version_preview/controller_methods.rb- The concern withbefore_action :set_view_variantand helper methods (current_variant,detected_variants,variant_preview_active?,can_preview_variants?)lib/action_version_preview/switcher_helper.rb- Providesvariant_switcher; explicitly required by the engine so early Action View loading does not depend on Rails autoloading
- Engine initializer includes
ControllerMethodsin all controllers viaActiveSupport.on_load(:action_controller_base) before_action :set_view_variantchecks for thevvparam (configurable)- If param present and user passes
access_check, setsrequest.variant - Rails' template resolver automatically finds
action.html+variant.erbfiles detected_variantsscans view directory for*.html+*.erbfiles, excluding standard Rails variants (mobile, tablet, phone, desktop)
The test/dummy/ directory contains a minimal Rails app for testing. Tests use Minitest with ActionDispatch::IntegrationTest.