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)