Class: RailsPulse::JobRun

Inherits:
ApplicationRecord show all
Includes:
HasPerformanceStatus, Taggable
Defined in:
app/models/rails_pulse/job_run.rb

Constant Summary collapse

STATUSES =
%w[enqueued running success failed discarded retried].freeze
FINAL_STATUSES =
%w[success failed discarded retried].freeze

Constants included from Taggable

Taggable::MAX_TAG_LENGTH, Taggable::TAG_NAME_REGEX

Class Method Summary collapse

Instance Method Summary collapse

Methods included from HasPerformanceStatus

#performance_status

Methods included from Taggable

#add_tag, #has_tag?, #remove_tag, #tag_list, #tag_list=

Class Method Details

.ransackable_associations(auth_object = nil) ⇒ Object



31
32
33
# File 'app/models/rails_pulse/job_run.rb', line 31

def self.ransackable_associations(auth_object = nil)
  %w[job operations]
end

.ransackable_attributes(auth_object = nil) ⇒ Object



27
28
29
# File 'app/models/rails_pulse/job_run.rb', line 27

def self.ransackable_attributes(auth_object = nil)
  %w[id job_id run_id status occurred_at duration attempts adapter]
end

Instance Method Details

#all_tagsObject



46
47
48
# File 'app/models/rails_pulse/job_run.rb', line 46

def all_tags
  (job.tag_list + tag_list).uniq
end

#failure_like_status?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'app/models/rails_pulse/job_run.rb', line 50

def failure_like_status?
  FINAL_STATUSES.include?(status) && status != "success"
end

#finalized?Boolean

Returns:

  • (Boolean)


54
55
56
57
58
59
60
# File 'app/models/rails_pulse/job_run.rb', line 54

def finalized?
  change = previous_changes["status"]
  return false unless change

  previous_state, new_state = change
  FINAL_STATUSES.include?(new_state) && !FINAL_STATUSES.include?(previous_state)
end

#to_breadcrumbObject



42
43
44
# File 'app/models/rails_pulse/job_run.rb', line 42

def to_breadcrumb
  occurred_at.getlocal.strftime("%b %d, %Y %l:%M %p")
end