class Micro::Service::Pipeline::SafeReducer
Public Instance Methods
>>(arg)
click to toggle source
# File lib/micro/service/pipeline/reducer.rb, line 71 def >>(arg) raise NoMethodError, "undefined method `>>' for #{self.inspect}. Please, use the method `&' to avoid this error." end
Also aliased as: &
call(arg = {})
click to toggle source
# File lib/micro/service/pipeline/reducer.rb, line 62 def call(arg = {}) @services.reduce(initial_result(arg)) do |result, service| break result if result.failure? service_result(service, result) end end
Private Instance Methods
service_result(service, result)
click to toggle source
# File lib/micro/service/pipeline/reducer.rb, line 77 def service_result(service, result) begin instance = service.__new__(result, result.value) instance.call rescue => exception raise exception if Error::ByWrongUsage.check(exception) result.__set__(false, exception, :exception, instance) end end