class ServiceResult

Attributes

error[R]

Public Class Methods

error(err) click to toggle source
# File lib/generators/service/install/templates/services/service_result.rb, line 59
def self.error(err)
  result = allocate
  result.instance_variable_set(:@error, err)
  result
end
new() { || ... } click to toggle source
# File lib/generators/service/install/templates/services/service_result.rb, line 6
def initialize
  @value = yield
  @error = nil
rescue StandardError => e
  @error = e
end

Public Instance Methods

inspect()
Alias for: to_s
ok?() click to toggle source
# File lib/generators/service/install/templates/services/service_result.rb, line 55
def ok?
  !@error
end
rescue() { |error| ... } click to toggle source
# File lib/generators/service/install/templates/services/service_result.rb, line 32
def rescue
  return self if ok?

  result = yield(@error)
  raise TypeError, 'block invoked in Result#rescue did not return Result' unless result.is_a?(Result)

  result
end
then() { |value| ... } click to toggle source
# File lib/generators/service/install/templates/services/service_result.rb, line 23
def then
  return self unless ok?

  result = yield(@value)
  raise TypeError, 'block invoked in Result#then did not return Result' unless result.is_a?(Result)

  result
end
to_s() click to toggle source
# File lib/generators/service/install/templates/services/service_result.rb, line 13
def to_s
  if ok?
    format('#<Result:0x%x value: %s>', object_id, @value.inspect)
  else
    format('#<Result:0x%x error: %s>', object_id, @error.inspect)
  end
end
Also aliased as: inspect
value() { |error| ... } click to toggle source
# File lib/generators/service/install/templates/services/service_result.rb, line 41
def value
  raise ArgumentError, 'must provide a block to Result#value to be invoked in case of error' unless block_given?

  return @value if ok?

  yield(@error)
end
value!() click to toggle source
# File lib/generators/service/install/templates/services/service_result.rb, line 49
def value!
  raise @error unless ok?

  @value
end