Using the Bruno template by adding a transaction status indicator:
def transaction(&block) raise ArgumentError, "No block was given" unless block_given? begin raw_query("BEGIN") yield raw_query("COMMIT") return true
C # transaction interaction:
def run_queries(queries) raise ArgumentError, "Invalid Queries Argument: #{queries}" unless queries.respond_to?(:each) success = transaction do queries.each do |q| raw_query(q) end end raise RuntimeError, "Transaction Failed for Queries: #{queries}" unless success end
source share