Sha256: 13673f17a0f0be6313825ab192becc4f0a877c8a8d7d192317bb801e35232b15
Contents?: true
Size: 702 Bytes
Versions: 1
Compression:
Stored size: 702 Bytes
Contents
module Ni::Flows class IsolatedInlineInteractor < Base attr_accessor :interactor_klass, :action, :receive_list, :provide_list def initialize(interactor_klass, action, options={}) self.interactor_klass, self.action = interactor_klass, action self.receive_list, self.provide_list = Array(options[:receive]), Array(options[:provide]) end def call(context) isolated_context = Ni::Context.new(nil, action) isolated_context.assign_data!(context.slice(*receive_list)) result = interactor_klass.public_send(action, isolated_context) provide_list.each do |param_name| context[param_name] = result.context[param_name] end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ni-0.1.1 | lib/ni/flows/isolated_inline_interactor.rb |