Class: JobBoard::JobPresenter

Inherits:
Object
  • Object
show all
Defined in:
app/models/job_board/job_presenter.rb

Overview

Detail-page wrapper around a SolidQueue::Job loaded with all five has_one execution associations preloaded.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(job) ⇒ JobPresenter

Returns a new instance of JobPresenter.



11
12
13
# File 'app/models/job_board/job_presenter.rb', line 11

def initialize(job)
  @job = job
end

Instance Attribute Details

#jobObject (readonly)

Returns the value of attribute job.



5
6
7
# File 'app/models/job_board/job_presenter.rb', line 5

def job
  @job
end

Instance Method Details

#argumentsObject



22
# File 'app/models/job_board/job_presenter.rb', line 22

def arguments = payload["arguments"]

#enqueued_atObject



25
# File 'app/models/job_board/job_presenter.rb', line 25

def enqueued_at = payload["enqueued_at"]

#errorObject



31
# File 'app/models/job_board/job_presenter.rb', line 31

def error = failed_execution

#exception_executionsObject



24
# File 'app/models/job_board/job_presenter.rb', line 24

def exception_executions = payload["exception_executions"]

#executions_countObject



23
# File 'app/models/job_board/job_presenter.rb', line 23

def executions_count = payload["executions"]

#payloadObject

The serialized ActiveJob payload (Job#arguments is JSON-coded by SolidQueue).



16
17
18
19
20
# File 'app/models/job_board/job_presenter.rb', line 16

def payload
  @payload ||= job.arguments || {}
rescue StandardError
  @payload = {}
end

#processObject



33
34
35
# File 'app/models/job_board/job_presenter.rb', line 33

def process
  job.claimed_execution&.process
end

#scheduled_atObject



27
28
29
# File 'app/models/job_board/job_presenter.rb', line 27

def scheduled_at
  job.scheduled_execution&.scheduled_at || job.scheduled_at
end