diff options
Diffstat (limited to 'lib/gitlab/metrics/dashboard/stages/base_stage.rb')
-rw-r--r-- | lib/gitlab/metrics/dashboard/stages/base_stage.rb | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/lib/gitlab/metrics/dashboard/stages/base_stage.rb b/lib/gitlab/metrics/dashboard/stages/base_stage.rb index f9e4ae4b4b5..622d5aa8cdb 100644 --- a/lib/gitlab/metrics/dashboard/stages/base_stage.rb +++ b/lib/gitlab/metrics/dashboard/stages/base_stage.rb @@ -37,10 +37,8 @@ module Gitlab def for_metrics missing_panel_groups! unless dashboard[:panel_groups].is_a?(Array) - dashboard[:panel_groups].each do |panel_group| - missing_panels! unless panel_group[:panels].is_a?(Array) - - panel_group[:panels].each do |panel| + for_panel_groups do |panel_group| + for_panels_in(panel_group) do |panel| missing_metrics! unless panel[:metrics].is_a?(Array) panel[:metrics].each do |metric| @@ -49,6 +47,20 @@ module Gitlab end end end + + def for_panel_groups + dashboard[:panel_groups].each do |panel_group| + yield panel_group + end + end + + def for_panels_in(panel_group) + missing_panels! unless panel_group[:panels].is_a?(Array) + + panel_group[:panels].each do |panel| + yield panel + end + end end end end |