Module: Transdeal
- Defined in:
- lib/transdeal.rb,
lib/transdeal/version.rb
Defined Under Namespace
Classes: InvalidBackend
Constant Summary collapse
- VERSION =
'0.2.1'
Class Method Summary collapse
- .configure(*args, &λ) ⇒ Object
- .transdeal(*objects, skip_global_callbacks: false, callback: nil, &λ) ⇒ Object (also: transaction)
Class Method Details
.configure(*args, &λ) ⇒ Object
13 14 15 |
# File 'lib/transdeal.rb', line 13 def configure *args, &λ (@🏺 ||= []).concat(procify(λ, *args)) end |
.transdeal(*objects, skip_global_callbacks: false, callback: nil, &λ) ⇒ Object Also known as: transaction
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/transdeal.rb', line 17 def transdeal *objects, skip_global_callbacks: false, callback: nil, &λ ⚑ = nil ActiveRecord::Base.transaction do begin λ[] rescue => e ⚑ = {exception: e, data: objects} raise end end ensure if ⚑ 🏺!(⚑) unless skip_global_callbacks procify(callback).each { |λ| λ.(⚑) } end end |