Class: Users::MergeRequestInteraction

Inherits:
Object
  • Object
show all
Defined in:
app/models/users/merge_request_interaction.rb

Instance Method Summary collapse

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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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_subjectObject



11
12
13
# File 'app/models/users/merge_request_interaction.rb', line 11

def declarative_policy_subject
  merge_request
end

#review_stateObject



23
24
25
# File 'app/models/users/merge_request_interaction.rb', line 23

def review_state
  reviewer&.state
end

#reviewed?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'app/models/users/merge_request_interaction.rb', line 27

def reviewed?
  reviewer&.reviewed? == true
end