Refactor ci status factories to DRY code a little
This commit is contained in:
parent
feaf01802c
commit
e0ce97fb7d
5 changed files with 28 additions and 29 deletions
|
@ -3,14 +3,13 @@ module Gitlab
|
|||
module Status
|
||||
module Build
|
||||
class Factory < Status::Factory
|
||||
private
|
||||
|
||||
def extended_statuses
|
||||
[Stop, Play, Cancelable, Retryable]
|
||||
def self.extended_statuses
|
||||
[Status::Build::Stop, Status::Build::Play,
|
||||
Status::Build::Cancelable, Status::Build::Retryable]
|
||||
end
|
||||
|
||||
def core_status
|
||||
super.extend(Status::Build::Common)
|
||||
def self.common_helpers
|
||||
Status::Build::Common
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,7 +2,7 @@ module Gitlab
|
|||
module Ci
|
||||
module Status
|
||||
module Extended
|
||||
def matches?(_subject)
|
||||
def matches?(_subject, _user)
|
||||
raise NotImplementedError
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,10 +2,9 @@ module Gitlab
|
|||
module Ci
|
||||
module Status
|
||||
class Factory
|
||||
attr_reader :subject
|
||||
|
||||
def initialize(subject)
|
||||
def initialize(subject, user = nil)
|
||||
@subject = subject
|
||||
@user = user
|
||||
end
|
||||
|
||||
def fabricate!
|
||||
|
@ -16,27 +15,32 @@ module Gitlab
|
|||
end
|
||||
end
|
||||
|
||||
def self.extended_statuses
|
||||
[]
|
||||
end
|
||||
|
||||
def self.common_helpers
|
||||
Module.new
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def subject_status
|
||||
@subject_status ||= subject.status
|
||||
def simple_status
|
||||
@simple_status ||= @subject.status || :created
|
||||
end
|
||||
|
||||
def core_status
|
||||
Gitlab::Ci::Status
|
||||
.const_get(subject_status.capitalize)
|
||||
.new(subject)
|
||||
.const_get(simple_status.capitalize)
|
||||
.new(@subject)
|
||||
.extend(self.class.common_helpers)
|
||||
end
|
||||
|
||||
def extended_status
|
||||
@extended ||= extended_statuses.find do |status|
|
||||
status.matches?(subject)
|
||||
@extended ||= self.class.extended_statuses.find do |status|
|
||||
status.matches?(@subject, @user)
|
||||
end
|
||||
end
|
||||
|
||||
def extended_statuses
|
||||
[]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,14 +3,12 @@ module Gitlab
|
|||
module Status
|
||||
module Pipeline
|
||||
class Factory < Status::Factory
|
||||
private
|
||||
|
||||
def extended_statuses
|
||||
def self.extended_statuses
|
||||
[Pipeline::SuccessWithWarnings]
|
||||
end
|
||||
|
||||
def core_status
|
||||
super.extend(Status::Pipeline::Common)
|
||||
def self.common_helpers
|
||||
Status::Pipeline::Common
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,10 +3,8 @@ module Gitlab
|
|||
module Status
|
||||
module Stage
|
||||
class Factory < Status::Factory
|
||||
private
|
||||
|
||||
def core_status
|
||||
super.extend(Status::Stage::Common)
|
||||
def self.common_helpers
|
||||
Status::Stage::Common
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue