class ActiveOperation::Pipeline::OperationFactory
Public Class Methods
new(operation_class, options = {})
click to toggle source
Calls superclass method
# File lib/active_operation/pipeline.rb, line 4 def initialize(operation_class, options = {}) super(operation_class) @_options = options end
Public Instance Methods
new(context, *input)
click to toggle source
# File lib/active_operation/pipeline.rb, line 9 def new(context, *input) keyword_input_names = inputs.select(&:keyword?).map(&:name) positional_args = input.shift(inputs.count(&:positional?)) attributes_from_input = input.last.kind_of?(Hash) ? input.pop.slice(*keyword_input_names) : {} attributes_from_input.delete_if { |_, value| value.nil? } attributes_from_pipeline = Array(@_options).each_with_object({}) do |(key, value), result| result[key] = value.kind_of?(Proc) ? context.instance_exec(&value) : value end __getobj__.new *positional_args, attributes_from_input.merge(attributes_from_pipeline) end