Class: Textus::Domain::Policy::Retention
- Inherits:
-
Object
- Object
- Textus::Domain::Policy::Retention
- Defined in:
- lib/textus/domain/policy/retention.rb
Overview
Lifetime policy for queue/quarantine leaves. Both windows are optional durations (see Domain::Duration). ‘expire_after` deletes; `archive_after` moves the leaf aside. When both are set, expire wins once its (longer) window is exceeded.
Instance Attribute Summary collapse
-
#archive_after ⇒ Object
readonly
Returns the value of attribute archive_after.
-
#expire_after ⇒ Object
readonly
Returns the value of attribute expire_after.
Instance Method Summary collapse
-
#action_for(age_seconds) ⇒ Object
:expire | :archive | nil for a leaf of the given age (seconds).
-
#initialize(expire_after: nil, archive_after: nil) ⇒ Retention
constructor
A new instance of Retention.
Constructor Details
#initialize(expire_after: nil, archive_after: nil) ⇒ Retention
Returns a new instance of Retention.
11 12 13 14 |
# File 'lib/textus/domain/policy/retention.rb', line 11 def initialize(expire_after: nil, archive_after: nil) @expire_after = Textus::Domain::Duration.seconds(expire_after) @archive_after = Textus::Domain::Duration.seconds(archive_after) end |
Instance Attribute Details
#archive_after ⇒ Object (readonly)
Returns the value of attribute archive_after.
9 10 11 |
# File 'lib/textus/domain/policy/retention.rb', line 9 def archive_after @archive_after end |
#expire_after ⇒ Object (readonly)
Returns the value of attribute expire_after.
9 10 11 |
# File 'lib/textus/domain/policy/retention.rb', line 9 def expire_after @expire_after end |
Instance Method Details
#action_for(age_seconds) ⇒ Object
:expire | :archive | nil for a leaf of the given age (seconds).
17 18 19 20 21 22 |
# File 'lib/textus/domain/policy/retention.rb', line 17 def action_for(age_seconds) return :expire if @expire_after && age_seconds > @expire_after return :archive if @archive_after && age_seconds > @archive_after nil end |