Skip to content

Releases: kerrizor/keela

v0.2.3 - Stop Seeing Double

Choose a tag to compare

@kerrizor kerrizor released this 31 Jul 15:12

🔍 Keela v0.2.3 - "Stop Seeing Double"

The one where we learned that = and =~ are not the same thing.

What's Fixed

Ever notice your baseline had the same constant listed twice? 👀 Turns out when you write:

DATETIME_REGEX = %r{...}       # definition
DATETIME_REGEX =~ some_string  # usage

Keela was like "oh cool, TWO constants!"

No. Bad Keela. The =~ regex match operator is using the constant, not defining it. We've sent Keela back to Ruby school and she now understands the difference between assignment (=) and matching (=~).

What's Changed

We also stopped committing Gemfile.lock because we're a gem, not an app, and frankly it was causing more drama than a reality TV reunion special. 📺

Upgrade

gem install keela
# or
bundle update keela

Then regenerate your baseline and watch those duplicates disappear! ✨

v0.2.2 - The .keela/ directory is complete 📁

Choose a tag to compare

@kerrizor kerrizor released this 27 Jul 18:26

What's New

The .keela/ directory now supports config files too! All your Keela files can live together in one tidy home.

📁 Complete .keela/ Directory Support

Your project root can now be completely free of Keela files:

.keela/
├── config.yml      # ← NEW in 0.2.2
├── baseline.yml
└── excluded.yml

Config file lookup order:

  1. .keela/config.yml (new preferred)
  2. keela.yml
  3. .keela.yml

All existing root-level files continue to work—no migration required.


Full Changelog: v0.2.1...v0.2.2

Install / Upgrade

gem install keela
# or
bundle update keela

v0.2.1 - Keela gets a home 🏠

Choose a tag to compare

@kerrizor kerrizor released this 27 Jul 18:16

What's New

Keela now supports organizing its files in a dedicated .keela/ directory, keeping your project root tidy. Plus, a new quiet mode for when you just want the results.

🤫 Quiet Mode

Suppress the progress bar with --quiet or -q:

keela --type methods --quiet

Perfect for CI pipelines or when you're piping output somewhere else.

🏠 New .keela/ Directory Support

Tired of dotfiles cluttering your project root? Keela now looks for its files in a .keela/ directory first:

.keela/
├── baseline.yml
└── excluded.yml

Don't worry—your existing root-level keela_baseline.yml and keela_excluded.yml files still work. Keela checks both locations:

  1. .keela/excluded.ymlkeela_excluded.yml
  2. .keela/baseline.ymlkeela_baseline.yml

Explicit excluded_path or baseline_path config always wins.


Full Changelog: v0.2.0...v0.2.1

Install / Upgrade

gem install keela
# or
bundle update keela

v0.2.0 - The Nose Knows 🐕

Choose a tag to compare

@kerrizor kerrizor released this 17 Jul 18:10

🐕 Keela v0.2.0 - The Nose Knows

Meet Keela — a code-sniffing springer spaniel who finds the unused code that other tools miss.

Named after the famous "CSI dog" who could detect microscopic traces that eluded forensic teams, Keela brings that same nose to your Ruby codebase.

What Can Keela Sniff Out?

🔧 Methods - def unused_method that nobody calls

🔍 Scopes - scope :inactive, -> { } that nothing queries

🔢 Constants - UNUSED_CONSTANT = "value" gathering dust (#2)

🔗 Delegations - delegate :unused_method, to: :target going nowhere (#4)

📝 Attributes - attr_accessor :unused_attr that nothing reads or writes (#5)

🌍 I18n Keys (beta) - Translation keys in your locale YAML that no view uses (#16)

How She Works

Baseline mode for CI — Keela tracks known unused code and only barks at new dead code:

keela --update-baseline  # First run: establish the baseline
keela                    # CI runs: fail on new unused code

Report mode for exploration — See everything:

keela --report

Configuration

📁 Config file - Drop a keela.yml in your project root (#11)

🎯 Include/exclude patterns - Tell Keela where to sniff (#12, #14)

# keela.yml
exclude_patterns:
  - "vendor/**/*"
include_patterns:
  - "engines/**/*.rb"

🎛️ Multi-type scanning - Hunt for specific scents (#18)

keela --type methods,scopes,constants

📊 JSON output - Machine-readable findings for your pipeline (#19)

keela --format json

Installation

gem install keela

Full Changelog: v0.1.0...v0.2.0

Good girl, Keela. Now go find that dead code! 🦴