diff --git a/app/models/ci/stage.rb b/app/models/ci/stage.rb index f1cac09c4e9..8f7727aebaa 100644 --- a/app/models/ci/stage.rb +++ b/app/models/ci/stage.rb @@ -1,23 +1,29 @@ module Ci - class Stage < ActiveRecord::Base - include ActiveModel::Model + # Currently this is artificial object, constructed dynamically + # We should migrate this object to actual database record in the future + class Stage + include StaticModel attr_reader :pipeline, :name - def initialize(pipeline, name: name, status: status = nil) + def initialize(pipeline, name: name, status: nil) @pipeline, @name, @status = pipeline, name, status end + def to_param + name + end + def status @status ||= statuses.latest.status end def statuses - pipeline.statuses.where(stage: stage) + @statuses ||= pipeline.statuses.where(stage: stage) end def builds - pipeline.builds.where(stage: stage) + @builds ||= pipeline.builds.where(stage: stage) end end end