summaryrefslogtreecommitdiff
path: root/lib/gitlab/ci/status/core.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/ci/status/core.rb')
-rw-r--r--lib/gitlab/ci/status/core.rb69
1 files changed, 69 insertions, 0 deletions
diff --git a/lib/gitlab/ci/status/core.rb b/lib/gitlab/ci/status/core.rb
new file mode 100644
index 00000000000..46fef8262c1
--- /dev/null
+++ b/lib/gitlab/ci/status/core.rb
@@ -0,0 +1,69 @@
+module Gitlab
+ module Ci
+ module Status
+ # Base abstract class fore core status
+ #
+ class Core
+ include Gitlab::Routing
+ include Gitlab::Allowable
+
+ attr_reader :subject, :user
+
+ def initialize(subject, user)
+ @subject = subject
+ @user = user
+ end
+
+ def icon
+ raise NotImplementedError
+ end
+
+ def label
+ raise NotImplementedError
+ end
+
+ # Deprecation warning: this method is here because we need to maintain
+ # backwards compatibility with legacy statuses. We often do something
+ # like "ci-status ci-status-#{status}" to set CSS class.
+ #
+ # `to_s` method should be renamed to `group` at some point, after
+ # phasing legacy satuses out.
+ #
+ def to_s
+ self.class.name.demodulize.downcase.underscore
+ end
+
+ def has_details?
+ false
+ end
+
+ def details_path
+ raise NotImplementedError
+ end
+
+ def has_action?
+ false
+ end
+
+ def action_icon
+ raise NotImplementedError
+ end
+
+ def action_class
+ end
+
+ def action_path
+ raise NotImplementedError
+ end
+
+ def action_method
+ raise NotImplementedError
+ end
+
+ def action_title
+ raise NotImplementedError
+ end
+ end
+ end
+ end
+end