Sha256: a1fab698006f0b28a7b58bc5880d9dc85d09c25ab739471387c44941ef428b64
Contents?: true
Size: 1.39 KB
Versions: 1
Compression:
Stored size: 1.39 KB
Contents
# frozen_string_literal: true module ConvenientService module Service module Plugins module CanHaveResultStep class Middleware < Core::MethodChainMiddleware ## # @param args [Array<Object>] # @param kwargs [Hash{Symbol => Object}] # @param block [Proc, nil] # @return [ConvenientService::Service::Plugins::HasResult::Entities::Result] # # @internal # NOTE: It is okish to assign to next method arguments here, # since splat for `args` and double splat for `kwargs` # always create new arrays and hashes respectively. # https://github.com/ruby/spec/blob/c7ed8478a031d0df346d222495f4b4bbb298523b/language/keyword_arguments_spec.rb#L100 # def next(*args, **kwargs, &block) return chain.next(*args, **kwargs, &block) if args.first != :result kwargs[:in] = Utils::Array.wrap(kwargs[:in]) + [{method_name: raw(:result)}, {organizer: :itself}] args[0] = Services::RunOwnMethodInOrganizer chain.next(*args, **kwargs, &block) end private ## # @param object [Object] Can be any type. # @return [ConvenientService::Support::RawValue] # def raw(object) Support::RawValue.wrap(object) end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
convenient_service-0.12.0 | lib/convenient_service/service/plugins/can_have_result_step/middleware.rb |