Class: Wheneverd::Trigger::Interval

Inherits:
Object
  • Object
show all
Includes:
Base
Defined in:
lib/wheneverd/trigger/interval.rb

Overview

A monotonic interval trigger for systemd timers.

We emit both:

  • OnActiveSec= to schedule the first run relative to timer activation.
  • OnUnitActiveSec= to schedule subsequent runs relative to the last run.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(seconds:) ⇒ Interval

Returns a new instance of Interval.

Parameters:

  • seconds (Integer)

    seconds between runs (must be positive)



17
18
19
# File 'lib/wheneverd/trigger/interval.rb', line 17

def initialize(seconds:)
  @seconds = Validation.positive_integer(seconds, name: "Interval seconds")
end

Instance Attribute Details

#secondsInteger (readonly)

Returns:

  • (Integer)


14
15
16
# File 'lib/wheneverd/trigger/interval.rb', line 14

def seconds
  @seconds
end

Instance Method Details

#signatureString

Returns stable signature for unit naming.

Returns:

  • (String)

    stable signature for unit naming



27
28
29
# File 'lib/wheneverd/trigger/interval.rb', line 27

def signature
  "interval:#{seconds}"
end

#systemd_timer_linesArray<String>

Returns systemd [Timer] lines for this trigger.

Returns:

  • (Array<String>)

    systemd [Timer] lines for this trigger



22
23
24
# File 'lib/wheneverd/trigger/interval.rb', line 22

def systemd_timer_lines
  ["OnActiveSec=#{seconds}", "OnUnitActiveSec=#{seconds}"]
end