summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Andrew <mail@timothyandrew.net>2016-09-20 18:50:48 +0530
committerTimothy Andrew <mail@timothyandrew.net>2016-09-20 18:50:48 +0530
commita4a0ce95001b93c2ed65a18946542f3eecdf564e (patch)
treef6a18dafdcfedb46477382055eafd15ef2a91bf5
parentc9247c05eb4988687b1fe85e39a6ea30b5437c40 (diff)
downloadgitlab-ce-a4a0ce95001b93c2ed65a18946542f3eecdf564e.tar.gz
Move JSON generation (cycle analytics) into a controller method.
Helper methods are meant for views
-rw-r--r--app/controllers/projects/cycle_analytics_controller.rb36
-rw-r--r--app/helpers/cycle_analytics_helper.rb35
2 files changed, 34 insertions, 37 deletions
diff --git a/app/controllers/projects/cycle_analytics_controller.rb b/app/controllers/projects/cycle_analytics_controller.rb
index dd0acc57425..7f0689306be 100644
--- a/app/controllers/projects/cycle_analytics_controller.rb
+++ b/app/controllers/projects/cycle_analytics_controller.rb
@@ -1,5 +1,5 @@
class Projects::CycleAnalyticsController < Projects::ApplicationController
- include CycleAnalyticsHelper
+ include ActionView::Helpers::DateHelper
before_action :authorize_read_cycle_analytics!
@@ -8,7 +8,7 @@ class Projects::CycleAnalyticsController < Projects::ApplicationController
respond_to do |format|
format.html
- format.json { render json: cycle_analytics_json(@cycle_analytics) }
+ format.json { render json: cycle_analytics_json }
end
end
@@ -27,4 +27,36 @@ class Projects::CycleAnalyticsController < Projects::ApplicationController
{ start_date: params[:cycle_analytics][:start_date] }
end
+
+ def cycle_analytics_json
+ cycle_analytics_view_data = [[:issue, "Issue", "Time before an issue gets scheduled"],
+ [:plan, "Plan", "Time before an issue starts implementation"],
+ [:code, "Code", "Time until first merge request"],
+ [:test, "Test", "Total test time for all commits/merges"],
+ [:review, "Review", "Time between merge request creation and merge/close"],
+ [:staging, "Staging", "From merge request merge until deploy to production"],
+ [:production, "Production", "From issue creation until deploy to production"]]
+
+ stats = cycle_analytics_view_data.reduce([]) do |stats, (stage_method, stage_text, stage_description)|
+ value = @cycle_analytics.send(stage_method).presence
+
+ stats << {
+ title: stage_text,
+ description: stage_description,
+ value: value && !value.zero? ? distance_of_time_in_words(value) : nil
+ }
+ stats
+ end
+
+ summary = [
+ { title: "New Issues", value: @cycle_analytics.summary.new_issues },
+ { title: "Commits", value: @cycle_analytics.summary.commits },
+ { title: "Deploys", value: @cycle_analytics.summary.deploys }
+ ]
+
+ {
+ summary: summary,
+ stats: stats
+ }
+ end
end
diff --git a/app/helpers/cycle_analytics_helper.rb b/app/helpers/cycle_analytics_helper.rb
deleted file mode 100644
index f6f654a639e..00000000000
--- a/app/helpers/cycle_analytics_helper.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-module CycleAnalyticsHelper
- include ActionView::Helpers::DateHelper
-
- def cycle_analytics_json(cycle_analytics)
- cycle_analytics_view_data = [[:issue, "Issue", "Time before an issue gets scheduled"],
- [:plan, "Plan", "Time before an issue starts implementation"],
- [:code, "Code", "Time until first merge request"],
- [:test, "Test", "Total test time for all commits/merges"],
- [:review, "Review", "Time between merge request creation and merge/close"],
- [:staging, "Staging", "From merge request merge until deploy to production"],
- [:production, "Production", "From issue creation until deploy to production"]]
-
- stats = cycle_analytics_view_data.reduce([]) do |stats, (stage_method, stage_text, stage_description)|
- value = cycle_analytics.send(stage_method).presence
-
- stats << {
- title: stage_text,
- description: stage_description,
- value: value && !value.zero? ? distance_of_time_in_words(value) : nil
- }
- stats
- end
-
- summary = [
- { title: "New Issues", value: cycle_analytics.summary.new_issues },
- { title: "Commits", value: cycle_analytics.summary.commits },
- { title: "Deploys", value: cycle_analytics.summary.deploys }
- ]
-
- {
- summary: summary,
- stats: stats
- }
- end
-end