Categories: None [Edit]

styxable

https://rubygems.org/gems/styxable
https://github.com/mediafinger/styxable
Styxable turns deletion into a three-stage lifecycle for ActiveRecord models: active, archived, purged. Calling styx_archive soft-deletes a record — it (optionally) vanishes from default scopes like being in a trash can or recycle bin, but the row survives, so foreign keys, joins, reports and audits keep working. Archived records can still be listed, counted and restored during a configurable grace or retention period, giving you an undo window or restore window instead of an irreversible destroy. While a record sits in the archive it is immutable: writes are rejected, so nothing can be silently edited between archiving and erasure — like in a vault. styx_unarchive brings a record back, unless it cannot, for example when a newer record has claimed a unique attribute in the meantime. Archiving cascades along dependent: associations, so closing an account, deactivating a user or tearing down a tenant can archive everything it owns in a single call, with callbacks around each step. Each model declares its own data retention period. A recurring background job then permanently destroys records whose retention window has expired, expressing your retention schedule, records disposition and automatic purge in code rather than in a runbook — useful for GDPR storage limitation and right to erasure ("right to be forgotten") obligations, or any policy with a TTL or expiry date. A before-purge callback lets you detach ActiveStorage blobs, delete remote files or notify external systems before a record crosses the Styx for good.

Total

Ranking: 185,019 of 197,744
Downloads: 1,746

Daily

Ranking: 105,941 of 197,724
Downloads: 1

Depended by

RankDownloadsName

Depends on

RankDownloadsName
13,863,547,421bundler
81,444,561,272rake
291,032,112,907rspec
55763,949,454rubocop
62719,652,724zeitwerk
181303,246,954rubocop-rspec
213259,290,434irb
355150,201,828bundler-audit
1,08846,350,691rubocop-rake
1,23640,012,857amazing_print

Owners

#GravatarHandle
1iconmediafinger