Class: ClockworkWeb::HomeController

Inherits:
ActionController::Base
  • Object
show all
Defined in:
app/controllers/clockwork_web/home_controller.rb

Instance Method Summary collapse

Instance Method Details

#executeObject



42
43
44
45
46
47
48
49
50
51
# File 'app/controllers/clockwork_web/home_controller.rb', line 42

def execute
  job = params[:job]

  event = Clockwork.manager.events.find { _1.job == params[:job] }

  event.run(Time.now.utc)
  ClockworkWeb.set_last_run(event.job)

  redirect_to root_path
end

#indexObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'app/controllers/clockwork_web/home_controller.rb', line 10

def index
  @last_runs = ClockworkWeb.last_runs
  @disabled = ClockworkWeb.disabled_jobs
  @events =
    Clockwork.manager.instance_variable_get(:@events).sort_by do |e|
      at = e.instance_variable_get(:@at)
      enabled = !@disabled.include?(e.job)
      overdue = enabled && ClockworkWeb.overdue?(e, @last_runs[e.job])
      [
        overdue ? 0 : 1, # prioritize overdue first
        e.instance_variable_get(:@period),
        (at && at.instance_variable_get(:@hour)) || -1,
        (at && at.instance_variable_get(:@min)) || -1,
        e.job.to_s
      ]
    end

  @last_heartbeat = ClockworkWeb.last_heartbeat
end

#jobObject



30
31
32
33
34
35
36
37
38
39
40
# File 'app/controllers/clockwork_web/home_controller.rb', line 30

def job
  job = params[:job]
  enable = params[:enable] == "true"
  if enable
    ClockworkWeb.enable(job)
  else
    ClockworkWeb.disable(job)
  end
  ClockworkWeb.on_job_update.call(job: job, enable: enable, user: try(ClockworkWeb.user_method)) if ClockworkWeb.on_job_update
  redirect_to root_path
end