why-classes is a linter and refactoring tool inspired by Dave Thomas's talk on the over-use of classes in Ruby. It scans a Ruby/Rails codebase (or a single file) for "class smells" -- stateless singleton-method classes, function buckets, invalid initial state, fat-base inheritance, and data buckets -- and reports each one with a concrete refactoring suggestion toward modules, composition, Struct or Data. The mechanically-safe refactorings (notably data bucket -> Struct/Data) can be applied automatically with --fix.

Required Ruby Version

>= 3.2.0

Authors

Gabriel Quaresma

Versions

  1. 0.2.1 July 21, 2026 (27.5 KB)
  2. 0.1.1 July 21, 2026 (23 KB)
  3. 0.1.0 July 21, 2026 (23 KB)

Pushed by

SHA 256 checksum