Gem Dependency Audit

v1
Feb 24, 2026 · 2.6 KB · 2 min read · by Tom Vance

Gem Dependency Audit v1

Gem Dependency Audit

Summary

The Gemfile contains 87 direct dependencies. Bundler resolves these to 847 total gems. Of these:

  • 211 gems no longer exist on RubyGems
  • 134 gems have not been updated since 2015
  • 43 gems have known security vulnerabilities
  • 12 gems are forks of forks of gems that were abandoned
  • 1 gem (tomltech-utils) appears to be a gem Gary published. It has 3 downloads, all from this server.

Critical Issues

GemVersionIssue
rails3.2.228 major versions behind. 247 known CVEs.
devise2.2.8Authentication. Cannot upgrade without Rails upgrade.
paperclip4.1.1File uploads. Gem officially abandoned. Use Active Storage.
will_paginate3.0.5Pagination. Actually this one is fine. It never changes. It will never change. It is eternal.
therubyracer0.12.3Embeds V8 in Ruby. Nobody remembers why. Causes segfaults on M1 Macs.
coffee-rails4.0.1CoffeeScript compilation. The CoffeeScript website now redirects to the TypeScript website.
jquery-rails3.1.2jQuery. The app has 47 $('.class').click() handlers in a single file.
protected_attributes1.1.4Mass assignment protection. The Rails 3 way. Incompatible with Rails 4+.
dynamic_form1.1.4Form error display. Last commit: 2013.
tomltech-utils0.0.1Gary's gem. Contains one method: String#to_boolean. It converts "true" to true and everything else to false. Including "yes", "1", and "TRUE".

Gems That Can Be Replaced

Old GemReplacementNotes
paperclipActive StorageBuilt into Rails 5.2+
coffee-railsesbuildOr just write JavaScript. It's fine now.
therubyracerNode.jsOr remove entirely if we stop using CoffeeScript
protected_attributesStrong ParametersBuilt into Rails 4+
tomltech-utilsinline codeIt's one method. We can just write it.

Gems That Cannot Be Replaced

GemReason
mystery_connectorConnects to the unknown SMTP server. No documentation. No source code. The gem was published by an account called "gary_temp" that no longer exists.
legacy_bridgeAppears to transform data between two formats. Both formats are undocumented. Removing it causes the MysteryWorker to crash.

Recommendation

Do not attempt to preserve the existing gem ecosystem. Start fresh with Rails 7 defaults and add dependencies as needed. Accept that mystery_connector and legacy_bridge will require reverse engineering.

Budget 2 days for reverse engineering. Budget 2 more days for when that estimate turns out to be wrong.