Class: Hmibo::Result

Inherits:
Object
  • Object
show all
Defined in:
lib/hmibo/result.rb

Overview

Result object for service operations

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(success, message, data = nil, errors = []) ⇒ Result

Returns a new instance of Result.



8
9
10
11
12
13
# File 'lib/hmibo/result.rb', line 8

def initialize(success, message, data = nil, errors = [])
  @success = success
  @message = message
  @data = data
  @errors = Array(errors)
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



6
7
8
# File 'lib/hmibo/result.rb', line 6

def data
  @data
end

#errorsObject (readonly)

Returns the value of attribute errors.



6
7
8
# File 'lib/hmibo/result.rb', line 6

def errors
  @errors
end

#messageObject (readonly)

Returns the value of attribute message.



6
7
8
# File 'lib/hmibo/result.rb', line 6

def message
  @message
end

#successObject (readonly)

Returns the value of attribute success.



6
7
8
# File 'lib/hmibo/result.rb', line 6

def success
  @success
end

Class Method Details

.error(message, errors = []) ⇒ Object



53
54
55
# File 'lib/hmibo/result.rb', line 53

def self.error(message, errors = [])
  failure(message, errors)
end

.failure(message, errors = []) ⇒ Object



49
50
51
# File 'lib/hmibo/result.rb', line 49

def self.failure(message, errors = [])
  new(false, message, nil, Array(errors))
end

.success(message = 'Success', data = nil) ⇒ Object

Factory methods for creating results



45
46
47
# File 'lib/hmibo/result.rb', line 45

def self.success(message = 'Success', data = nil)
  new(true, message, data, [])
end

Instance Method Details

#error?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/hmibo/result.rb', line 23

def error?
  failure?
end

#errors?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/hmibo/result.rb', line 27

def errors?
  @errors.present?
end

#failure?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/hmibo/result.rb', line 19

def failure?
  !@success
end

#success?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/hmibo/result.rb', line 15

def success?
  @success
end

#to_hObject



31
32
33
34
35
36
37
38
# File 'lib/hmibo/result.rb', line 31

def to_h
  {
    success: @success,
    message: @message,
    data: @data,
    errors: @errors
  }
end

#to_json(*args) ⇒ Object



40
41
42
# File 'lib/hmibo/result.rb', line 40

def to_json(*args)
  to_h.to_json(*args)
end