class Micro::Service::Result

Attributes

type[R]
value[R]

Public Instance Methods

__set__(is_success, value, type, service) click to toggle source
# File lib/micro/service/result.rb, line 8
def __set__(is_success, value, type, service)
  raise Error::InvalidResultType unless type.is_a?(Symbol)
  raise Error::InvalidService if !is_success && !is_a_service?(service)

  @success, @value, @type, @service = is_success, value, type, service

  self
end
failure?() click to toggle source
# File lib/micro/service/result.rb, line 21
def failure?
  !success?
end
on_failure(arg = nil) { |value, service| ... } click to toggle source
# File lib/micro/service/result.rb, line 35
def on_failure(arg = nil)
  self.tap{ yield(value, @service) if failure_type?(arg) }
end
on_success(arg = nil) { |value| ... } click to toggle source
# File lib/micro/service/result.rb, line 31
def on_success(arg = nil)
  self.tap { yield(value) if success_type?(arg) }
end
service() click to toggle source
# File lib/micro/service/result.rb, line 25
def service
  return @service if failure?

  raise Error::InvalidAccessToTheServiceObject
end
success?() click to toggle source
# File lib/micro/service/result.rb, line 17
def success?
  @success
end

Private Instance Methods

failure_type?(arg) click to toggle source
# File lib/micro/service/result.rb, line 45
def failure_type?(arg)
  failure? && (arg.nil? || arg == type)
end
is_a_service?(arg) click to toggle source
# File lib/micro/service/result.rb, line 49
def is_a_service?(arg)
  (arg.is_a?(Class) && arg < Service::Base) || arg.is_a?(Service::Base)
end
success_type?(arg) click to toggle source
# File lib/micro/service/result.rb, line 41
def success_type?(arg)
  success? && (arg.nil? || arg == type)
end