Class: Gitlab::MergeRequests::Mergeability::CheckResult

Inherits:
Object
  • Object
show all
Defined in:
lib/gitlab/merge_requests/mergeability/check_result.rb

Constant Summary collapse

SUCCESS_STATUS =
:success
FAILED_STATUS =
:failed

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(status:, payload: {}) ⇒ CheckResult

Returns a new instance of CheckResult.



29
30
31
32
# File 'lib/gitlab/merge_requests/mergeability/check_result.rb', line 29

def initialize(status:, payload: {})
  @status = status
  @payload = payload
end

Instance Attribute Details

#payloadObject (readonly)

Returns the value of attribute payload.



9
10
11
# File 'lib/gitlab/merge_requests/mergeability/check_result.rb', line 9

def payload
  @payload
end

#statusObject (readonly)

Returns the value of attribute status.



9
10
11
# File 'lib/gitlab/merge_requests/mergeability/check_result.rb', line 9

def status
  @status
end

Class Method Details

.default_payloadObject



11
12
13
# File 'lib/gitlab/merge_requests/mergeability/check_result.rb', line 11

def self.default_payload
  { last_run_at: Time.current }
end

.failed(payload: {}) ⇒ Object



19
20
21
# File 'lib/gitlab/merge_requests/mergeability/check_result.rb', line 19

def self.failed(payload: {})
  new(status: FAILED_STATUS, payload: default_payload.merge(**payload))
end

.from_hash(data) ⇒ Object



23
24
25
26
27
# File 'lib/gitlab/merge_requests/mergeability/check_result.rb', line 23

def self.from_hash(data)
  new(
    status: data.fetch(:status).to_sym,
    payload: data.fetch(:payload))
end

.success(payload: {}) ⇒ Object



15
16
17
# File 'lib/gitlab/merge_requests/mergeability/check_result.rb', line 15

def self.success(payload: {})
  new(status: SUCCESS_STATUS, payload: default_payload.merge(**payload))
end

Instance Method Details

#failed?Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/gitlab/merge_requests/mergeability/check_result.rb', line 38

def failed?
  status == FAILED_STATUS
end

#success?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/gitlab/merge_requests/mergeability/check_result.rb', line 42

def success?
  status == SUCCESS_STATUS
end

#to_hashObject



34
35
36
# File 'lib/gitlab/merge_requests/mergeability/check_result.rb', line 34

def to_hash
  { status: status, payload: payload }
end