Upgrade to Ruby 3.3.6 and Rails 8.0.4

This major upgrade brings RailsGoat up to date with the latest versions:
- Ruby 2.6.5 → 3.3.6
- Rails 6.0.0 → 8.0.4

## Key Changes

### Dependencies
- Upgraded all gems to Rails 8-compatible versions
- Removed deprecated gems: therubyracer, coffee-rails, poltergeist,
  travis-lint, rails-perftest, unicorn, powder, rubocop-github
- Updated puma to 6.6.1, sqlite3 to 2.8.1, rspec-rails to 8.0.2
- Added modern Rails 8 features: importmap-rails, stimulus-rails, turbo-rails
- Replaced poltergeist with selenium-webdriver for integration tests

### Code Changes
- Converted CoffeeScript files to plain JavaScript
- Updated test configuration to use Selenium headless driver
- Updated database schema to Rails 8 format

## Testing
- Application starts successfully and responds to requests
- Test suite runs with 23 examples (14 intentional vulnerability failures)
- Database migrations applied successfully

## Notes
This upgrade maintains all intentional security vulnerabilities that make
RailsGoat an effective training tool. The failing tests are expected and
demonstrate the vulnerabilities the application is designed to teach.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Ken Johnson
2025-12-04 15:30:49 -05:00
parent dc91666d3a
commit f716836c15
7 changed files with 438 additions and 316 deletions
+14 -17
View File
@@ -1,33 +1,31 @@
# frozen_string_literal: true
source "https://rubygems.org"
#don't upgrade
gem "rails", "6.0.0"
gem "rails", "~> 8.0.0"
ruby "2.6.5"
ruby "3.3.6"
gem "aruba"
gem "bcrypt"
gem "coffee-rails"
gem "execjs"
gem "foreman"
gem "jquery-fileupload-rails"
gem "jquery-rails"
gem "minitest"
gem "powder" # Pow related gem
gem "pry-rails" # not in dev group in case running via prod/staging @ a training
gem "puma"
gem "rails-perftest"
gem "puma", "~> 6.0"
gem "rake"
gem "responders" #For Rails 4.2 # LOCKED DOWN
gem "responders"
gem "ruby-prof"
gem "sassc-rails"
gem "simplecov", require: false, group: :test
gem "sqlite3"
gem "therubyracer"
gem "sqlite3", "~> 2.0"
gem "turbolinks"
gem "uglifier"
gem "unicorn"
# Asset pipeline
gem "sprockets-rails"
gem "importmap-rails"
gem "stimulus-rails"
gem "turbo-rails"
# Add SMTP server support using MailCatcher
# NOTE: https://github.com/sj26/mailcatcher#bundler
@@ -43,16 +41,15 @@ group :development, :mysql do
gem "pry"
gem "rack-livereload"
gem "rb-fsevent"
gem "rubocop-github"
gem "travis-lint"
gem "rubocop"
end
group :development, :test, :mysql do
gem "capybara"
gem "database_cleaner"
gem "launchy"
gem "poltergeist"
gem "rspec-rails", '4.0.0.beta3' # 4/26/2019: LOCKED DOWN
gem "selenium-webdriver"
gem "rspec-rails"
gem "test-unit"
end