class Clockwork::Test::Manager
Attributes
end_time[R]
history[R]
max_ticks[R]
start_time[R]
total_ticks[R]
Public Class Methods
new(opts = {})
click to toggle source
Calls superclass method
# File lib/clockwork/test/manager.rb, line 6 def initialize(opts = {}) super() @history = JobHistory.new @total_ticks = 0 set_opts(opts) config[:logger].level = Logger::ERROR end
Public Instance Methods
block_for(job)
click to toggle source
# File lib/clockwork/test/manager.rb, line 38 def block_for(job) history.block_for(job) end
ran_job?(job)
click to toggle source
# File lib/clockwork/test/manager.rb, line 30 def ran_job?(job) history.ran_job?(job) end
run(opts = {}) { || ... }
click to toggle source
# File lib/clockwork/test/manager.rb, line 15 def run(opts = {}) set_opts(opts) if start_time @time_altered = true Timecop.travel(start_time) end yield if block_given? tick_loop Timecop.return if @time_altered end
times_run(job)
click to toggle source
# File lib/clockwork/test/manager.rb, line 34 def times_run(job) history.times_run(job) end
Private Instance Methods
events_run_now()
click to toggle source
# File lib/clockwork/test/manager.rb, line 85 def events_run_now events_to_run(Time.now) end
increase_time()
click to toggle source
# File lib/clockwork/test/manager.rb, line 71 def increase_time Timecop.travel(Time.now + @tick_speed) if @tick_speed end
register(period, job, block, options)
click to toggle source
# File lib/clockwork/test/manager.rb, line 75 def register(period, job, block, options) event = ::Clockwork::Test::Event.new(self, period, job, block || handler, options) @events << event event end
set_opts(opts)
click to toggle source
# File lib/clockwork/test/manager.rb, line 44 def set_opts(opts) @max_ticks = opts[:max_ticks] if opts[:max_ticks] @start_time = opts[:start_time] if opts[:start_time] if opts[:end_time] @end_time = opts[:end_time] elsif @start_time @end_time = Time.current end @tick_speed = opts[:tick_speed] raise "End time can't precede start time." if @start_time && (@start_time > @end_time) end
tick_loop()
click to toggle source
# File lib/clockwork/test/manager.rb, line 59 def tick_loop while true do update_job_history tick increase_time @total_ticks += 1 break if ticks_exceeded? || time_exceeded? end end
ticks_exceeded?()
click to toggle source
# File lib/clockwork/test/manager.rb, line 89 def ticks_exceeded? max_ticks && total_ticks >= max_ticks end
time_exceeded?()
click to toggle source
# File lib/clockwork/test/manager.rb, line 93 def time_exceeded? end_time && Time.now >= end_time end
update_job_history()
click to toggle source
# File lib/clockwork/test/manager.rb, line 81 def update_job_history history.record(events_run_now) end