debian-mirror-gitlab/lib/gitlab/analytics/cycle_analytics/stage_events/stage_event.rb
2019-12-21 20:55:43 +05:30

46 lines
1.1 KiB
Ruby

# frozen_string_literal: true
module Gitlab
module Analytics
module CycleAnalytics
module StageEvents
# Base class for expressing an event that can be used for a stage.
class StageEvent
include Gitlab::CycleAnalytics::MetricsTables
def initialize(params)
@params = params
end
def self.name
raise NotImplementedError
end
def self.identifier
raise NotImplementedError
end
def object_type
raise NotImplementedError
end
# Each StageEvent must expose a timestamp or a timestamp like expression in order to build a range query.
# Example: get me all the Issue records between start event end end event
def timestamp_projection
raise NotImplementedError
end
# Optionally a StageEvent may apply additional filtering or join other tables on the base query.
def apply_query_customization(query)
query
end
private
attr_reader :params
end
end
end
end
end