Module: Analytics::CycleAnalytics::Stageable

Extended by:
ActiveSupport::Concern
Includes:
Gitlab::Utils::StrongMemoize
Included in:
Stage
Defined in:
app/models/concerns/analytics/cycle_analytics/stageable.rb

Instance Method Summary collapse

Instance Method Details

#default_stage?Boolean

Returns:

  • (Boolean)


80
81
82
# File 'app/models/concerns/analytics/cycle_analytics/stageable.rb', line 80

def default_stage?
  !custom
end

#end_eventObject



45
46
47
# File 'app/models/concerns/analytics/cycle_analytics/stageable.rb', line 45

def end_event
  Gitlab::Analytics::CycleAnalytics::StageEvents[end_event_identifier].new(params_for_end_event)
end

#end_event_identifier=(identifier) ⇒ Object



67
68
69
70
# File 'app/models/concerns/analytics/cycle_analytics/stageable.rb', line 67

def end_event_identifier=(identifier)
  clear_memoization(:end_event)
  super
end

#end_event_label_based?Boolean

Returns:

  • (Boolean)


58
59
60
# File 'app/models/concerns/analytics/cycle_analytics/stageable.rb', line 58

def end_event_label_based?
  end_event_identifier && end_event.label_based?
end

#events_hash_codeObject



50
51
52
# File 'app/models/concerns/analytics/cycle_analytics/stageable.rb', line 50

def events_hash_code
  Digest::SHA256.hexdigest("#{start_event.hash_code}-#{end_event.hash_code}")
end

#params_for_end_eventObject



76
77
78
# File 'app/models/concerns/analytics/cycle_analytics/stageable.rb', line 76

def params_for_end_event
  end_event_label.present? ? { label: end_event_label } : {}
end

#params_for_start_eventObject



72
73
74
# File 'app/models/concerns/analytics/cycle_analytics/stageable.rb', line 72

def params_for_start_event
  start_event_label.present? ? { label: start_event_label } : {}
end

#start_eventObject



40
41
42
# File 'app/models/concerns/analytics/cycle_analytics/stageable.rb', line 40

def start_event
  Gitlab::Analytics::CycleAnalytics::StageEvents[start_event_identifier].new(params_for_start_event)
end

#start_event_identifier=(identifier) ⇒ Object



62
63
64
65
# File 'app/models/concerns/analytics/cycle_analytics/stageable.rb', line 62

def start_event_identifier=(identifier)
  clear_memoization(:start_event)
  super
end

#start_event_label_based?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'app/models/concerns/analytics/cycle_analytics/stageable.rb', line 54

def start_event_label_based?
  start_event_identifier && start_event.label_based?
end

#subject_classObject

The model class that is going to be queried, Issue or MergeRequest



85
86
87
# File 'app/models/concerns/analytics/cycle_analytics/stageable.rb', line 85

def subject_class
  start_event.object_type
end