Module: TheHelp::ServiceCaller
- Included in:
- Service
- Defined in:
- lib/the_help/service_caller.rb
Overview
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.
Instance Method Summary collapse
-
#call_service(service, **args, &block) ⇒ self
Calls the specified service.
Instance Method Details
#call_service(service, **args, &block) ⇒ self
Calls the specified service
35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/the_help/service_caller.rb', line 35 def call_service(service, **args, &block) service_args = { context: service_context, logger: service_logger }.merge(args) service_logger.debug("#{self.class.name}/#{__id__} called service " \ "#{service.name}") return service.call(**service_args, &block) if block_given? service.call(**service_args).value! end |