summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJames Lopez <james@jameslopez.es>2016-12-05 09:47:10 +0100
committerJames Lopez <james@jameslopez.es>2017-01-17 11:32:55 +0100
commit3f681f4cefb5eda594acaab2eaf1be18ebd9066c (patch)
tree70cb52af2bf1bf07ea94d847b0ed5a7620c16bc9 /lib
parentb214be493d9f179d4a929ee32d94a336da7b38f1 (diff)
downloadgitlab-ce-3f681f4cefb5eda594acaab2eaf1be18ebd9066c.tar.gz
fix specs, refactor missing bits from events stuff
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/cycle_analytics/base_event_fetcher.rb8
-rw-r--r--lib/gitlab/cycle_analytics/base_stage.rb4
-rw-r--r--lib/gitlab/cycle_analytics/event.rb2
-rw-r--r--lib/gitlab/cycle_analytics/metrics_fetcher.rb9
4 files changed, 12 insertions, 11 deletions
diff --git a/lib/gitlab/cycle_analytics/base_event_fetcher.rb b/lib/gitlab/cycle_analytics/base_event_fetcher.rb
index 0d851f81b1d..d4b2d665e59 100644
--- a/lib/gitlab/cycle_analytics/base_event_fetcher.rb
+++ b/lib/gitlab/cycle_analytics/base_event_fetcher.rb
@@ -3,7 +3,7 @@ module Gitlab
class BaseEventFetcher
include MetricsTables
- attr_reader :projections, :query, :stage
+ attr_reader :projections, :query, :stage, :order
def initialize(fetcher:, options:, stage:)
@fetcher = fetcher
@@ -22,10 +22,6 @@ module Gitlab
def custom_query(_base_query); end
- def order
- @order || @start_time_attrs
- end
-
private
def update_author!
@@ -35,7 +31,7 @@ module Gitlab
end
def event_result
- @event_result ||= @fetcher.events(self).to_a
+ @event_result ||= @fetcher.events.to_a
end
def serialize(_event)
diff --git a/lib/gitlab/cycle_analytics/base_stage.rb b/lib/gitlab/cycle_analytics/base_stage.rb
index f3b8bb6e1d3..f81a41bccb6 100644
--- a/lib/gitlab/cycle_analytics/base_stage.rb
+++ b/lib/gitlab/cycle_analytics/base_stage.rb
@@ -1,6 +1,8 @@
module Gitlab
module CycleAnalytics
class BaseStage
+ include MetricsTables
+
attr_accessor :start_time_attrs, :end_time_attrs
def initialize(project:, options:)
@@ -13,7 +15,7 @@ module Gitlab
end
def event
- @event ||= Gitlab::CycleAnalytics::Event[stage].new(fetcher: @fetcher, options: @options)
+ @event ||= Gitlab::CycleAnalytics::Event[stage].new(fetcher: @fetcher, options: @options, stage: stage)
end
def events
diff --git a/lib/gitlab/cycle_analytics/event.rb b/lib/gitlab/cycle_analytics/event.rb
index bb3a5722a0f..1ba7bc08ee5 100644
--- a/lib/gitlab/cycle_analytics/event.rb
+++ b/lib/gitlab/cycle_analytics/event.rb
@@ -2,7 +2,7 @@ module Gitlab
module CycleAnalytics
module Event
def self.[](stage_name)
- CycleAnalytics.const_get("#{stage_name.to_s.camelize}Event")
+ CycleAnalytics.const_get("#{stage_name.to_s.camelize}EventFetcher")
end
end
end
diff --git a/lib/gitlab/cycle_analytics/metrics_fetcher.rb b/lib/gitlab/cycle_analytics/metrics_fetcher.rb
index 865abd0fa6c..dd291840ecd 100644
--- a/lib/gitlab/cycle_analytics/metrics_fetcher.rb
+++ b/lib/gitlab/cycle_analytics/metrics_fetcher.rb
@@ -38,13 +38,16 @@ module Gitlab
def events_query
base_query = base_query_for(@stage.stage)
- event = @stage.event
diff_fn = subtract_datetimes_diff(base_query, @stage.start_time_attrs, @stage.end_time_attrs)
- event_instance.custom_query(base_query)
+ @stage.event.custom_query(base_query)
- base_query.project(extract_diff_epoch(diff_fn).as('total_time'), *event.projections).order(event.order.desc)
+ base_query.project(extract_diff_epoch(diff_fn).as('total_time'), *@stage.event.projections).order(order.desc)
+ end
+
+ def order
+ @stage.event.order || @stage.start_time_attrs.is_a?(Array) ? @stage.start_time_attrs.first : @stage.start_time_attrs
end
# Join table with a row for every <issue,merge_request> pair (where the merge request