summaryrefslogtreecommitdiff
path: root/app/models/concerns/has_status.rb
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-07-04 15:31:15 +0200
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2017-07-04 15:31:15 +0200
commita17c90b2a7331a7427813684b04095b55c4b3cc1 (patch)
treead76404a74e856a37bd5a01d95ea61f0155053d0 /app/models/concerns/has_status.rb
parentf9228f6bf46f1d1caa4c62b80b8bd6ec883d33ae (diff)
downloadgitlab-ce-a17c90b2a7331a7427813684b04095b55c4b3cc1.tar.gz
Use enumerated status in persisted stage class
Diffstat (limited to 'app/models/concerns/has_status.rb')
-rw-r--r--app/models/concerns/has_status.rb10
1 files changed, 10 insertions, 0 deletions
diff --git a/app/models/concerns/has_status.rb b/app/models/concerns/has_status.rb
index 32af5566135..235196cae13 100644
--- a/app/models/concerns/has_status.rb
+++ b/app/models/concerns/has_status.rb
@@ -8,6 +8,8 @@ module HasStatus
ACTIVE_STATUSES = %w[pending running].freeze
COMPLETED_STATUSES = %w[success failed canceled skipped].freeze
ORDERED_STATUSES = %w[failed pending running manual canceled success skipped created].freeze
+ STATUSES_ENUM = { created: 0, pending: 1, running: 2, success: 3,
+ failed: 4, canceled: 5, skipped: 6, manual: 7 }
class_methods do
def status_sql
@@ -54,6 +56,14 @@ module HasStatus
def all_state_names
state_machines.values.flat_map(&:states).flat_map { |s| s.map(&:name) }
end
+
+ private
+
+ def enumerated_status!
+ @status_strategy = :enumerator
+
+ enum status: HasStatus::STATUSES_ENUM
+ end
end
included do