Class: Users::MergeRequestInteraction
- Inherits:
-
Object
- Object
- Users::MergeRequestInteraction
- Defined in:
- app/models/users/merge_request_interaction.rb
Instance Method Summary collapse
- #approved? ⇒ Boolean
- #can_merge? ⇒ Boolean
- #can_update? ⇒ Boolean
- #declarative_policy_subject ⇒ Object
-
#initialize(user:, merge_request:, current_user: nil) ⇒ MergeRequestInteraction
constructor
A new instance of MergeRequestInteraction.
- #review_state ⇒ Object
- #reviewed? ⇒ Boolean
Constructor Details
#initialize(user:, merge_request:, current_user: nil) ⇒ MergeRequestInteraction
Returns a new instance of MergeRequestInteraction.
5 6 7 8 9 |
# File 'app/models/users/merge_request_interaction.rb', line 5 def initialize(user:, merge_request:, current_user: nil) @user = user @merge_request = merge_request @current_user = current_user end |
Instance Method Details
#approved? ⇒ Boolean
31 32 33 |
# File 'app/models/users/merge_request_interaction.rb', line 31 def approved? merge_request.approvals.any? { |app| app.user_id == user.id } end |
#can_merge? ⇒ Boolean
15 16 17 |
# File 'app/models/users/merge_request_interaction.rb', line 15 def can_merge? merge_request.can_be_merged_by?(user) end |
#can_update? ⇒ Boolean
19 20 21 |
# File 'app/models/users/merge_request_interaction.rb', line 19 def can_update? user.can?(:update_merge_request, merge_request) end |
#declarative_policy_subject ⇒ Object
11 12 13 |
# File 'app/models/users/merge_request_interaction.rb', line 11 def declarative_policy_subject merge_request end |
#review_state ⇒ Object
23 24 25 |
# File 'app/models/users/merge_request_interaction.rb', line 23 def review_state reviewer&.state end |
#reviewed? ⇒ Boolean
27 28 29 |
# File 'app/models/users/merge_request_interaction.rb', line 27 def reviewed? reviewer&.reviewed? == true end |