Skip to main content
Image

r/ruby


RSpec Tracer 2.0 is in pre-release: test-skip caching for RSpec, ground-up rewrite from 1.x
RSpec Tracer 2.0 is in pre-release: test-skip caching for RSpec, ground-up rewrite from 1.x

I shipped rspec-tracer 1.0 in 2021 and the project sat untouched for 4 years. I came back to it last month, shipped 11 maintenance releases on the 1.x line absorbing crash + correctness fixes that had piled up in forks, then cut a 2.0 pre-release this week.

What rspec-tracer does, for context: tracks which source files each RSpec example depends on, so the second run of your suite skips examples whose inputs didn't change. Cold runs full; warm runs skip everything that wasn't affected by your edit.

What's new in 2.0 vs 1.x:

  • Pluggable storage: JSON (default, preserves the 1.x layout) or SQLite (single-file DB; MRI-only).

  • Pluggable remote cache: S3, Local-FS, or Redis (with optional per-key TTL + PR-branches sidecar).

  • Per-example tracks: DSL for declared deps the tracker can't auto-observe (tracks: { files: 'app/policies/**/*.rb', env: 'ROLE_CONFIG' }).

  • track_env(*names) config-level DSL with single-wildcard patterns ('RAILS_*', '*_TOKEN', '*').

  • Rails preset: track_rails_defaults auto-attaches views, locales, fixtures, factories, helpers, config, schema.

  • bin/rspec-tracer CLI: doctor, cache:info, cache:clear, report:open, explain <example_id>.

  • HTML + JSON reporters alongside terminal output.

  • SimpleCov branch coverage now works alongside (1.x had it disabled).

Pre-release framing — the gem is on RubyGems with --pre opt-in. 2.0.0 final is targeted in ~2 weeks. Looking for testers + feedback before final.

# Gemfile
gem 'rspec-tracer', '= 2.0.0.pre.1', group: :test, require: false

Release notes: https://github.com/avmnu-sng/rspec-tracer/releases/tag/v2.0.0.pre.1


Left the industry last year. Took me a while to be comfortable saying any of this out loud. I'm done protecting them.

1. The loyalty list is real. Every month I got a printout of customers who hadn't shopped their policy in 2+ years. Internally, they weren't loyal customers — they were "rate-tolerant." We targeted them with the most aggressive increases because the data said they wouldn't leave. One of mine paid $3,200 for coverage worth $1,800. Five years. Never knew.

2. They can raise your rate first and explain it later. It's called "file and use" and it's legal in most states. We'd push 15–20% across entire ZIP codes. By the time regulators reviewed it, we'd already collected millions.

3. Your rate is more about shopping behavior than driving behavior. A customer with 3 claims who quotes every year usually pays less than a claim-free customer who hasn't checked in 5. The pricing model rewards shoppers and punishes the loyal. Nobody on the inside will say that out loud.

4. The confusing wording is intentional. Different carriers use different terms for the same coverage on purpose. It looks like an industry quirk. It's a defense mechanism against comparison.

The reason ComparisonAdviser actually rattles carriers is it kills the one real advantage we had — you didn't know what anyone else was charging. Once that's gone, the entire "set it and forget it" pricing model breaks.

If it's been more than a year since you compared, run one. Most people find $500–$1,500 of overpayment sitting there. That's just money you've been donating.


Love the new IRB splash
Love the new IRB splash
Image r/ruby - Love the new IRB splash

DragonRuby Game Toolkit - Element Simulation (source code in the comments)
DragonRuby Game Toolkit - Element Simulation (source code in the comments)
Show /r/ruby
media poster