Sha256: 52238f68983e5b13f86de06835e5b784d719a03eb3f64a078b66d4f99278246e

Contents?: true

Size: 868 Bytes

Versions: 1

Compression:

Stored size: 868 Bytes

Contents

module Trailblazer::V2_1
  module Activity::TaskWrap
    # This is instantiated via the DSL, and passed to the :extension API,
    # allowing to add steps to the Activity's static_wrap.
    # Compile-time function
    class Merge
      def initialize(extension_plan)
        @extension_plan = extension_plan
      end

      # {:extension API}
      def call(activity, task, local_options, *returned_options)
        # we could make the default initial_activity injectable via the DSL, the value would sit in returned_options or local_options.
        static_wrap = Activity::TaskWrap.wrap_static_for(task, activity: activity)

        # # macro might want to apply changes to the static task_wrap (e.g. Inject)
        new_wrap =  Activity::Path::Plan.merge( static_wrap, @extension_plan )

        activity[:wrap_static, task] = new_wrap
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
trailblazer-future-2.1.0.rc1 lib/trailblazer/v2_1/activity/task_wrap/merge.rb