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

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