Class: NullResult

Inherits:
Object show all
Defined in:
lib/null_result.rb

Overview

NullResult represents a fallback object returned when a valid result cannot be produced.

This class implements the Null Object pattern and can optionally carry additional failure details such as a custom message and a data payload.

Example:

result = SomeService.call

if result.failure?
  puts "Error: #{result.message}"
  puts "Details: #{result.data.inspect}" if result.data
end

Instance Method Summary collapse

Constructor Details

#initialize(message: 'No valid result available', data: nil) ⇒ NullResult

Initializes a new NullResult.

Parameters:

  • message (String) (defaults to: 'No valid result available')

    a textual description of the failure (default: ‘No valid result available’)

  • data (Hash, nil) (defaults to: nil)

    additional structured data conveying details of the failure (default: nil)



26
27
28
29
# File 'lib/null_result.rb', line 26

def initialize(message: 'No valid result available', data: nil)
  @message = message
  @data = data
end

Instance Method Details

#dataHash?

Returns additional failure details.

Returns:

  • (Hash, nil)

    structured data with failure details



59
60
61
# File 'lib/null_result.rb', line 59

def data
  @data
end

#failure?Boolean

Indicates that the result is a failure.

Returns:

  • (Boolean)

    always true



35
36
37
# File 'lib/null_result.rb', line 35

def failure?
  true
end

#messageString

Returns the failure message.

Returns:

  • (String)

    the message describing the failure



51
52
53
# File 'lib/null_result.rb', line 51

def message
  @message
end

#success?Boolean

Indicates that the result is not a success.

Returns:

  • (Boolean)

    always false



43
44
45
# File 'lib/null_result.rb', line 43

def success?
  false
end

#to_sString

Returns a string representation of the NullResult.

Returns:



67
68
69
# File 'lib/null_result.rb', line 67

def to_s
  "NullResult(message: #{@message.inspect}, data: #{@data.inspect})"
end