module Trailblazer::Operation::DeprecatedMacro

Public Class Methods

call(proc, options) click to toggle source

Allows old macros with the `(input, options)` signature.

# File lib/trailblazer/operation/deprecated_macro.rb, line 5
def self.call(proc, options)
  warn %{[Trailblazer] Macros with API (input, options) are deprecated. Please use the "Task API" signature (options, flow_options) or use a simpler Callable. (#{proc})}

  wrapped_proc = ->((options, flow_options), **circuit_options) do
    result = proc.(circuit_options[:exec_context], options) # run the macro, with the deprecated signature.

    direction = Activity::TaskBuilder.binary_signal_for(result, Activity::Right, Activity::Left)

    return direction, [options, flow_options]
  end

  options.merge(task: wrapped_proc)
end