class Micro::Service::Base
Public Class Methods
&(service)
click to toggle source
# File lib/micro/service/base.rb, line 16 def self.&(service) Pipeline::Safe[self, service] end
>>(service)
click to toggle source
# File lib/micro/service/base.rb, line 12 def self.>>(service) Pipeline[self, service] end
__failure_type(arg, type)
click to toggle source
# File lib/micro/service/base.rb, line 30 def self.__failure_type(arg, type) return type if type != :error case arg when Exception then :exception when Symbol then arg else type end end
__new__(result, arg)
click to toggle source
# File lib/micro/service/base.rb, line 24 def self.__new__(result, arg) instance = new(arg) instance.__set_result__(result) instance end
call(options = {})
click to toggle source
# File lib/micro/service/base.rb, line 20 def self.call(options = {}) new(options).call end
to_proc()
click to toggle source
# File lib/micro/service/base.rb, line 8 def self.to_proc Proc.new { |arg| call(arg) } end
Public Instance Methods
__set_result__(result)
click to toggle source
# File lib/micro/service/base.rb, line 48 def __set_result__(result) raise Error::InvalidResultInstance unless result.is_a?(Result) raise Error::ResultIsAlreadyDefined if @__result @__result = result end
call()
click to toggle source
# File lib/micro/service/base.rb, line 44 def call __call end
call!()
click to toggle source
# File lib/micro/service/base.rb, line 40 def call! raise NotImplementedError end
Private Instance Methods
Failure(arg = :error) { |: arg| ... }
click to toggle source
# File lib/micro/service/base.rb, line 71 def Failure(arg = :error) value = block_given? ? yield : arg type = self.class.__failure_type(value, block_given? ? arg : :error) __get_result__.__set__(false, value, type, self) end
Success(arg = :ok) { || ... }
click to toggle source
# File lib/micro/service/base.rb, line 66 def Success(arg = :ok) value, type = block_given? ? [yield, arg] : [arg, :ok] __get_result__.__set__(true, value, type, nil) end
__call()
click to toggle source
# File lib/micro/service/base.rb, line 56 def __call result = call! return result if result.is_a?(Result) raise Error::UnexpectedResult.new(self.class) end
__get_result__()
click to toggle source
# File lib/micro/service/base.rb, line 62 def __get_result__ @__result ||= Result.new end