Sha256: e6be620cda5f8cd98985016935bd4b64e31c72bdab6deed0953b455a6bf0b2a9

Contents?: true

Size: 276 Bytes

Versions: 10

Compression:

Stored size: 276 Bytes

Contents

# frozen_string_literal: true

module BCDD::Result::RollbackOnFailure
  def rollback_on_failure(model: ::ActiveRecord::Base)
    result = nil

    model.transaction do
      result = yield

      raise ::ActiveRecord::Rollback if result.failure?
    end

    result
  end
end

Version data entries

10 entries across 7 versions & 2 rubygems

Version Path
bcdd-result-1.1.0 examples/multiple_listeners/lib/bcdd/result/rollback_on_failure.rb
bcdd-result-1.1.0 examples/single_listener/lib/bcdd/result/rollback_on_failure.rb
bcdd-result-1.0.0 examples/multiple_listeners/lib/bcdd/result/rollback_on_failure.rb
bcdd-result-1.0.0 examples/single_listener/lib/bcdd/result/rollback_on_failure.rb
bcdd-process-0.4.0 examples/business_processes/lib/bcdd/result/rollback_on_failure.rb
bcdd-process-0.3.1 examples/business_processes/lib/bcdd/result/rollback_on_failure.rb
bcdd-process-0.3.0 examples/business_processes/lib/bcdd/result/rollback_on_failure.rb
bcdd-process-0.2.0 examples/business_processes/lib/bcdd/result/rollback_on_failure.rb
bcdd-result-0.13.0 examples/single_listener/lib/bcdd/result/rollback_on_failure.rb
bcdd-result-0.13.0 examples/multiple_listeners/lib/bcdd/result/rollback_on_failure.rb