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: 184,281 of 196,721
Downloads: 1,693

Daily

Ranking: 22,117 of 196,694
Downloads: 6

Depended by

RankDownloadsName

Depends on

RankDownloadsName
13,728,237,794bundler
81,410,641,125rake
291,017,967,488rspec
56743,824,096rubocop
63697,529,207zeitwerk
182294,459,110rubocop-rspec
224241,739,402irb
359144,086,662bundler-audit
1,11844,002,900rubocop-rake
1,26437,957,607amazing_print

Owners

#GravatarHandle
1iconmediafinger