• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

MushroomObserver / mushroom-observer / 29006859718
99%
main: 99%

Build:
Build:
LAST BUILD BRANCH: nimmo-4735-retransfer-verify-rotate-jobs
DEFAULT BRANCH: main
Ran 09 Jul 2026 09:08AM UTC
Jobs 1
Files 1725
Run time 3min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

09 Jul 2026 09:03AM UTC coverage: 99.065% (-0.04%) from 99.107%
29006859718

Pull #4747

github

nimmolo
Port image processing to Ruby: Image::Processor (#4735 PR 1/4)

First PR in the job-ify-image-uploads plan (see issue #4735 comment):
a real Ruby class replacing the resize/reorient/transfer logic in
script/process_image, so `Image#process_image` writes width/height/
transferred through ActiveRecord (`image.update`) instead of the old
shell script's raw SQL UPDATE -- the precondition for after_update_commit
broadcasts to ever fire, planned for a later PR in this series.

Based on the draft in PR #2135, but that code had never actually run:
fixed a dead guard clause, an instance/class variable mismatch that
made the transferred flag never get marked, a private method called
with an explicit receiver from a different instance, a class-body
constant that called an instance method before it was defined, size
symbols vs subdirectory strings being compared directly, :local ending
up in the transfer-target list (self-copy), a missing host:path
separator for ssh targets, and *_file vs *_filepath method-name
mismatches. Also found MiniExiftool's typed `[]=`/`save` silently
no-ops on group-wildcard tags like "GPS:all" (the return value was
never checked) -- GPS stripping now shells out to exiftool directly,
matching what script/process_image already did.

`rotate`/`retransfer_images` are ported but not yet wired to any call
site or job -- that lands in the next PR. `process` is called
synchronously from `Image#process_image` in place of the old shell
command, still skipped in test env as before; the new class gets its
own direct, fast unit tests instead.

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

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Pull Request #4747: Port image processing to Ruby: Image::Processor (#4735 PR 1/4)

158 of 182 new or added lines in 3 files covered. (86.81%)

51892 of 52382 relevant lines covered (99.06%)

753.32 hits per line

Uncovered Changes

Lines Coverage ∆ File
24
84.62
app/models/image/processor.rb
Jobs
ID Job ID Ran Files Coverage
1 29006859718.1 09 Jul 2026 09:08AM UTC 1725
99.06
GitHub Action Run
Source Files on build 29006859718
  • Tree
  • List 1725
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #29006859718
  • Pull Request #4747
  • PR Base - main (#29002528855)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc