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

mroderick / codebar-planner / 22257859468
96%
master: 95%

Build:
Build:
LAST BUILD BRANCH: feature/chapters-sidebar-v3
DEFAULT BRANCH: master
Ran 21 Feb 2026 01:48PM UTC
Jobs 1
Files 175
Run time 1min
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

21 Feb 2026 01:43PM UTC coverage: 95.617%. First build
22257859468

push

github

mroderick
feat: cache member attending event IDs to eliminate N+1 queries

Motivation:
The events and meetings index pages were making N+1 queries when checking
if a logged-in member was attending each event. Each call to
@user.attending?(event) triggered a database query.

Analysis:
- Before: 40 queries for 40 events
- After: 3 queries (one each for invitations, workshop_invitations, meeting_invitations)
- The cache returns a Set of all event IDs where the member has an accepted
  invitation, making subsequent lookups O(1) Ruby operations.

The cache is invalidated when an invitation's attending status changes via
after_save callbacks on Invitation, WorkshopInvitation, and MeetingInvitation models.
This ensures the cache stays fresh on the next request after RSVP.

21 of 21 new or added lines in 5 files covered. (100.0%)

3294 of 3445 relevant lines covered (95.62%)

44.85 hits per line

Jobs
ID Job ID Ran Files Coverage
1 22257859468.1 21 Feb 2026 01:48PM UTC 1050
70.74
GitHub Action Run
Source Files on build 22257859468
  • Tree
  • List 175
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #22257859468
  • aa8b9d0a on github
  • Delete
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