Sha256: f618f7fe73690a0a253abc78567ac45c2a1d352a8fd3abe097e039bc376ce950
Contents?: true
Size: 1.11 KB
Versions: 7
Compression:
Stored size: 1.11 KB
Contents
# frozen_string_literal: true module TheHelp # Provides convenience method for calling services # # The including module/class MUST provide the #service_context and # #service_logger methods, which will be provided as the called-service's # `context` and `logger` arguments, respectively. # # @example # class Foo # include TheHelp::ServiceCaller # # def do_something # call_service(MyService, some: 'arguments') # end # # private # # def service_context # # something that provides the context # end # # def service_logger # # an instance of a `Logger` # end # end module ServiceCaller # Calls the specified service # # @param service [Class<TheHelp::Service>] # @param args [Hash<Symbol, Object>] Any additional keyword arguments are # passed directly to the service. # @return [self] def call_service(service, **args) service_args = { context: service_context, logger: service_logger }.merge(args) service.call(**service_args) self end end end
Version data entries
7 entries across 7 versions & 1 rubygems