Class: ClaudeMemory::Core::Result

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

Overview

Result type for consistent return values across the codebase. Replaces inconsistent nil/integer/hash returns with explicit Success/Failure types.

Examples:

Success case

result = Result.success(42)
result.success? # => true
result.value # => 42

Failure case

result = Result.failure("Something went wrong")
result.failure? # => true
result.error # => "Something went wrong"

Chaining operations

Result.success(5)
  .map { |v| v * 2 }
  .flat_map { |v| Result.success(v + 1) }
  .value # => 11

Direct Known Subclasses

Failure, Success

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.failure(error) ⇒ Failure

Creates a failed result

Parameters:

  • error (String, Exception)

    the error

Returns:



34
35
36
# File 'lib/claude_memory/core/result.rb', line 34

def self.failure(error)
  Failure.new(error)
end

.success(value = nil) ⇒ Success

Creates a successful result

Parameters:

  • value (Object) (defaults to: nil)

    the success value

Returns:



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

def self.success(value = nil)
  Success.new(value)
end

Instance Method Details

#errorString, ...

Returns the error, or nil for success.

Returns:

  • (String, Exception, nil)

    the error, or nil for success

Raises:

  • (NotImplementedError)


55
56
57
# File 'lib/claude_memory/core/result.rb', line 55

def error
  raise NotImplementedError
end

#failure?Boolean

Returns true if this is a failure result.

Returns:

  • (Boolean)

    true if this is a failure result



44
45
46
# File 'lib/claude_memory/core/result.rb', line 44

def failure?
  !success?
end

#flat_map {|Object| ... } ⇒ Result

Chains another result-returning operation if success

Yields:

  • (Object)

    the success value

Returns:

  • (Result)

    the result from the block, or self if failure

Raises:

  • (NotImplementedError)


69
70
71
# File 'lib/claude_memory/core/result.rb', line 69

def flat_map
  raise NotImplementedError
end

#map {|Object| ... } ⇒ Result

Transforms the value if success, otherwise returns self

Yields:

  • (Object)

    the success value

Returns:

  • (Result)

    a new result with the transformed value

Raises:

  • (NotImplementedError)


62
63
64
# File 'lib/claude_memory/core/result.rb', line 62

def map
  raise NotImplementedError
end

#or_else(default) ⇒ Object

Returns the value if success, otherwise returns the default

Parameters:

  • default (Object)

    the default value

Returns:

  • (Object)

    the value or default

Raises:

  • (NotImplementedError)


76
77
78
# File 'lib/claude_memory/core/result.rb', line 76

def or_else(default)
  raise NotImplementedError
end

#success?Boolean

Returns true if this is a success result.

Returns:

  • (Boolean)

    true if this is a success result

Raises:

  • (NotImplementedError)


39
40
41
# File 'lib/claude_memory/core/result.rb', line 39

def success?
  raise NotImplementedError
end

#valueObject

Returns the success value.

Returns:

  • (Object)

    the success value

Raises:

  • (RuntimeError)

    if called on a failure



50
51
52
# File 'lib/claude_memory/core/result.rb', line 50

def value
  raise NotImplementedError
end