Sha256: 6222bada995d4fea7df5baf4a348e092e2399debd97c6fb7bd706854b63c74ca

Contents?: true

Size: 670 Bytes

Versions: 1

Compression:

Stored size: 670 Bytes

Contents

# frozen_string_literal: true

begin
  require 'retryable'
rescue LoadError
  warn 'BusinessFlow::Retryable requires the retryable gem'
  raise
end

module BusinessFlow
  # Wraps a flow in a Retryable (https://github.com/nfedyashev/retryable)
  # You must provide this gem yourself
  module Retryable
    def self.included(klass)
      klass.extend(ClassMethods)
    end

    # Additions to the DSL
    module ClassMethods
      def retryable(opts)
        @retryable_config ||= {}
        @retryable_config.merge!(opts)
      end

      def execute(flow)
        ::Retryable.retryable(@retryable_config) do
          super(flow)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
business_flow-0.19.6 lib/business_flow/retryable.rb