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

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

Build:
Build:
LAST BUILD BRANCH: feature/default-async-email-delivery
DEFAULT BRANCH: master
Ran 21 Feb 2026 01:48PM UTC
Files 1050
Run time 26s
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: 70.735%. First build
22257859468.1

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.

14621 of 20670 relevant lines covered (70.74%)

7.47 hits per line

Source Files on job 22257859468.1
  • Tree
  • List 1050
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to 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