Sha256: a4ad43bdb467067246b5aaca36eef2d500f549d15c06c7b18058c35fc753ae45
Contents?: true
Size: 1.12 KB
Versions: 2
Compression:
Stored size: 1.12 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, &block) service_args = { context: service_context, logger: service_logger }.merge(args) service.call(**service_args, &block) self end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
the_help-1.3.0 | lib/the_help/service_caller.rb |
the_help-1.2.2 | lib/the_help/service_caller.rb |