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
- #default_stage? ⇒ Boolean
- #end_event ⇒ Object
- #end_event_identifier=(identifier) ⇒ Object
- #end_event_label_based? ⇒ Boolean
- #events_hash_code ⇒ Object
- #params_for_end_event ⇒ Object
- #params_for_start_event ⇒ Object
- #start_event ⇒ Object
- #start_event_identifier=(identifier) ⇒ Object
- #start_event_label_based? ⇒ Boolean
-
#subject_class ⇒ Object
The model class that is going to be queried, Issue or MergeRequest.
Instance Method Details
#default_stage? ⇒ Boolean
80 81 82 |
# File 'app/models/concerns/analytics/cycle_analytics/stageable.rb', line 80 def default_stage? !custom end |
#end_event ⇒ Object
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
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_code ⇒ Object
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_event ⇒ Object
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_event ⇒ Object
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_event ⇒ Object
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
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_class ⇒ Object
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 |