Sha256: 640b6e9affc91b2c427bfc5a6b033beec2cf2b7b888cbcbb723564f65e478f76

Contents?: true

Size: 785 Bytes

Versions: 4

Compression:

Stored size: 785 Bytes

Contents

# Dependencies can be defined on the operation. class level
class Trailblazer::Operation
  module Skill
    # The class-level skill container: Operation::[], ::[]=.
    module Accessors
      # :private:
      def skills
        @skills ||= {}
      end

      extend Forwardable
      def_delegators :skills, :[], :[]=
    end
  end

  # The use of this module is not encouraged and it is only here for backward-compatibility.
  # Instead, please pass dependencies via containers, locals, or macros into the respective steps.
  module ClassDependencies
    def call_with_circuit_interface( (ctx, flow_options), **circuit_options )
      @skills.each { |name, value| ctx[name] ||= value } # this resembles the behavior in 2.0. we didn't say we liked it.

      super
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
trailblazer-operation-0.4.1 lib/trailblazer/operation/class_dependencies.rb
trailblazer-operation-0.4.0 lib/trailblazer/operation/class_dependencies.rb
trailblazer-operation-0.3.1 lib/trailblazer/operation/class_dependencies.rb
trailblazer-operation-0.3.0 lib/trailblazer/operation/class_dependencies.rb