Module: SolidQueueMonitor::JobsHelper

Defined in:
app/helpers/solid_queue_monitor/jobs_helper.rb

Instance Method Summary collapse

Instance Method Details

#failed_error_message(error) ⇒ Object



49
50
51
# File 'app/helpers/solid_queue_monitor/jobs_helper.rb', line 49

def failed_error_message(error)
  parsed_failed_error(error)[:message].to_s
end

#format_arguments(arguments) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'app/helpers/solid_queue_monitor/jobs_helper.rb', line 5

def format_arguments(arguments)
  return '-' if arguments.blank?

  formatted = unwrap_arguments(arguments)
  if formatted.length <= 50
    tag.code(formatted, class: 'args-single-line')
  else
    tag.div(tag.code(formatted, class: 'args-content'), class: 'args-container')
  end
end

#format_hash(hash) ⇒ Object



16
17
18
19
20
21
22
23
# File 'app/helpers/solid_queue_monitor/jobs_helper.rb', line 16

def format_hash(hash)
  return '-' if hash.blank?

  parts = hash.map do |key, value|
    safe_join([tag.strong("#{key}:"), ' ', truncate(value.to_s, length: 50)])
  end
  tag.code(safe_join(parts, ', '))
end

#job_status(job) ⇒ Object



25
26
27
# File 'app/helpers/solid_queue_monitor/jobs_helper.rb', line 25

def job_status(job)
  SolidQueueMonitor::StatusCalculator.new(job).calculate
end

#job_status_badge(job) ⇒ Object



29
30
31
32
# File 'app/helpers/solid_queue_monitor/jobs_helper.rb', line 29

def job_status_badge(job)
  status = job_status(job)
  tag.span(status, class: "status-badge status-#{status}")
end

#mini_job_status_badge(job) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'app/helpers/solid_queue_monitor/jobs_helper.rb', line 34

def mini_job_status_badge(job)
  status = mini_job_status(job)

  labels = {
    failed: 'Failed',
    completed: 'Completed',
    in_progress: 'In Progress',
    scheduled: 'Scheduled',
    ready: 'Ready',
    pending: 'Pending'
  }
  css_status = status == :ready ? :pending : status
  tag.span(labels[status], class: "mini-status-badge status-#{css_status}")
end

#parsed_failed_error(error) ⇒ Object



53
54
55
56
57
58
59
60
61
62
# File 'app/helpers/solid_queue_monitor/jobs_helper.rb', line 53

def parsed_failed_error(error)
  return { type: 'Unknown', message: 'Unknown error', backtrace: [] } unless error

  error_hash = deserialize_failed_error(error)
  {
    type: failed_error_type(error_hash),
    message: failed_error_text(error_hash),
    backtrace: failed_error_backtrace(error_hash)
  }
end