class ChronoTrigger::Event
Attributes
after[R]
args[R]
at[RW]
before[R]
every[R]
id[R]
purge[R]
repeats[RW]
scope[R]
Public Class Methods
after(value)
click to toggle source
# File lib/chrono_trigger/event.rb, line 55 def after(value) return self unless value value = Time.zone.parse(value) if value.is_a?(String) @after = moment_in_the_future(value) if value.is_a?(ActiveSupport::TimeWithZone) self end
at(value)
click to toggle source
# File lib/chrono_trigger/event.rb, line 41 def at(value) return self unless value value = Time.zone.parse(value) if value.is_a?(String) @at = moment_in_the_future(value) if value.is_a?(ActiveSupport::TimeWithZone) self end
before(value)
click to toggle source
# File lib/chrono_trigger/event.rb, line 48 def before(value) return self unless value value = Time.zone.parse(value) if value.is_a?(String) @before = moment_in_the_future(value) if value.is_a?(ActiveSupport::TimeWithZone) self end
every(value)
click to toggle source
# File lib/chrono_trigger/event.rb, line 34 def every(value) return self unless value @every = value if value.is_a?(ActiveSupport::Duration) @every = value.seconds if value.is_a?(Integer) self end
new(options, args)
click to toggle source
# File lib/chrono_trigger/event.rb, line 70 def initialize(options, args) @id = options.id @scope = options.scope @repeats = options.repeats @every = options.every @at = options.at @before = options.before @after = options.after @args = args @purge = false ChronoTrigger.schedule.add(self) end
repeats(value)
click to toggle source
# File lib/chrono_trigger/event.rb, line 27 def repeats(value) return self unless value @repeats = value.count if value.is_a?(Enumerator) @repeats = value if value.is_a?(Integer) || value == :forever self end
schedule(*args)
click to toggle source
# File lib/chrono_trigger/event.rb, line 6 def schedule(*args) id = SecureRandom.uuid options = OpenStruct.new( id: id, scope: @scope, repeats: @repeats || 1, every: @every || 1.second, at: @at, before: @before, after: @after ) new(options, args) end
scope(value)
click to toggle source
# File lib/chrono_trigger/event.rb, line 20 def scope(value) return self unless value @scope = value if value.is_a?(String) @scope = value.to_gid.to_s if value.is_a?(ActiveRecord::Base) self end
Public Instance Methods
purge!()
click to toggle source
# File lib/chrono_trigger/event.rb, line 87 def purge! @purge = true end
ticks()
click to toggle source
# File lib/chrono_trigger/event.rb, line 83 def ticks ChronoTrigger::Clock.ticks end
to_s()
click to toggle source
# File lib/chrono_trigger/event.rb, line 94 def to_s inspect end
Private Instance Methods
perform(args)
click to toggle source
# File lib/chrono_trigger/event.rb, line 100 def perform(args) raise NotImplementedError end