class Aldous::Service::Wrapper

Attributes

service[R]

Public Class Methods

new(service) click to toggle source
# File lib/aldous/service/wrapper.rb, line 10
def initialize(service)
  @service = service
end

Public Instance Methods

default_result_data() click to toggle source
# File lib/aldous/service/wrapper.rb, line 18
def default_result_data
  service.default_result_data
end
perform() click to toggle source
# File lib/aldous/service/wrapper.rb, line 34
def perform
  perform!
rescue => e
  Aldous::LoggingWrapper.log(e.cause || e)
  Aldous::Service::Result::Failure.new(default_result_data.merge(errors: [e]))
end
perform!() click to toggle source
# File lib/aldous/service/wrapper.rb, line 22
def perform!
  result = service.perform

  unless result.kind_of?(::Aldous::Service::Result::Base)
    raise "Return value of #perform must be a type of #{::Aldous::Service::Result::Base}"
  end

  build_result_with_default_options(result)
rescue => e
  raise raisable_error.new(e.message)
end
raisable_error() click to toggle source
# File lib/aldous/service/wrapper.rb, line 14
def raisable_error
  service.raisable_error
end

Private Instance Methods

build_result_with_default_options(result) click to toggle source
# File lib/aldous/service/wrapper.rb, line 43
def build_result_with_default_options(result)
  result.class.new(default_result_data.merge(result._data))
end