Skip to content

fix: move DigestHelper from helpers to models/concerns#2706

Merged
mroderick merged 2 commits into
masterfrom
move-digest-helper
Jul 15, 2026
Merged

fix: move DigestHelper from helpers to models/concerns#2706
mroderick merged 2 commits into
masterfrom
move-digest-helper

Conversation

@mroderick

@mroderick mroderick commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

What

Move DigestHelper from app/helpers/ to app/models/concerns/.

Why

DigestHelper is a pure utility (one Digest::MD5 wrapper) that is included by both Member (domain layer) and ApplicationHelper (presentation layer). A module in app/helpers/ that domain code depends on is a reverse-layer dependency — the domain should not reach up to presentation.

Moving to app/models/concerns/ places it in the correct layer. Rails autoloading resolves by constant name, so both include sites continue to work unchanged.

Testing

  • spec/models/member_spec.rb — 38 examples, 0 failures
  • spec/helpers/application_helper_spec.rb — 18 examples, 0 failures

DigestHelper is a pure utility module (one Digest::MD5 wrapper) that is
included by both Member (domain) and ApplicationHelper (presentation).
A module in app/helpers/ that domain code depends on is a reverse-layer
dependency (domain → presentation).

Moving to app/models/concerns/ resolves the violation. Rails autoloading
resolves the constant by name, so both include sites continue to work.
@mroderick mroderick marked this pull request as ready for review July 15, 2026 05:48
@mroderick mroderick enabled auto-merge July 15, 2026 15:56
@mroderick mroderick merged commit 7c9e28f into master Jul 15, 2026
8 checks passed
@mroderick mroderick deleted the move-digest-helper branch July 15, 2026 15:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants