Skip to content
CAI
Software that uses CAICheck a score

jedld/resugan

65.0

Adequate · 22 September 2026

236

lines of production code

Ruby

primary language

6

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Resugan is a Ruby library that provides an event-dispatching framework with support for namespaced event routing and configurable dispatchers. It allows developers to register and trigger events within specific namespaces, enabling flexible and thread-safe context management. The system includes comprehensive test coverage and is packaged as a Ruby gem with standard project metadata.

Features

Introduce Resugan event-dispatching framework with namespace support and custom dispatchers

This change introduces the Resugan library, providing a mechanism to register and dispatch events within specific namespaces. Users can now wrap code blocks in \resugan\ or \resugan!\ methods to capture events, which are then dispatched via a configurable dispatcher (defaulting to \InlineDispatcher\, with support for \MarshalledInlineDispatcher\). The framework supports multiple namespaces per listener, allows top-level context reuse, and includes thread-safe context management. A version bump to 0.1.15 is also included.

lib/resugan · high confidence

Test coverage

Added comprehensive test coverage for Resugan's event dispatching and namespace handling

Added extensive RSpec tests for the Resugan library, covering event firing, method hooks, and namespace-based event routing. The tests verify that events are correctly dispatched to listeners, support multiple namespaces per listener, and handle nested resugan blocks with configurable top-level context reuse. A custom dispatcher is also tested to ensure the dispatching mechanism works as expected.

spec · high confidence

Dependencies

Updated gemspec with project metadata and dependencies

The Resugan gemspec was updated to replace placeholder text with actual project details, including a summary and description identifying it as a Ruby event framework, setting the homepage to the GitHub repository, and configuring RubyGems push permissions. Additionally, the development dependencies were adjusted: the Bundler version constraint was removed, and the Pry gem was added as a development dependency.

(dependencies) · medium confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 61 → 65 (+3.5)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 69 → 69 (+0.0)
  • Maturity 61 → 59 (-1.8)
  • Readiness 50 → 58 (+8.5)
  • Security 100 → 100 (+0.0)

Resolved (6)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • No exposed public API
  • Test reliability not included
  • early-stage repository — too little history to judge knowledge freshness
  • single-maintainer — knowledge-concentration (bus factor) risk

New (5)

  • Documentation: no architecture or design documentation (README.md)
  • Inconsistent event registration API. Context.register takes 'params' (suggesting data payload) while Kernel.register takes a 'block' (suggesting a listener). Furthermore, Kernel has two distinct registration methods (register vs register_with_namespace) with different signatures and likely different internal behaviors, creating confusion on which to use for namespaced events.
  • Inconsistent naming for event triggering. Object uses '_fire' while Kernel uses 'invoke'. Additionally, Object._fire does not take a namespace argument, implying it uses the current context, whereas Kernel.invoke explicitly requires a namespace. This inconsistency in naming ('fire' vs 'invoke') and argument structure is confusing.
  • No dependency advisory monitoring
  • Redundant methods with bang/non-bang naming convention without clear documentation of difference in signature. Typically '!' implies mutation or raising errors, but both take identical arguments. This creates ambiguity for users.

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

jedld/resugan was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 22 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 87d3080eb725640ea5d4d69087d00411dd572bff — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-821afab8930d.