lib/synchronisable/error_handler.rb in synchronisable-1.0.1 vs lib/synchronisable/error_handler.rb in synchronisable-1.0.2

- old
+ new

@@ -19,17 +19,19 @@ # @param source [Synchronisable::Source] synchronization source # # @return [Boolean] `true` if syncronization was completed # without errors, `false` otherwise def handle(source) - ActiveRecord::Base.transaction do + block = ->() { yield return true - end - rescue Exception => e - @context.errors << e - log(e, source) - return false + } + + source.parent ? block.() : ActiveRecord::Base.transaction(&block) + rescue Exception => e + @context.errors << e + log(e, source) + return false end private def log(e, source)