class Qualtrics::Transaction
Constants
- COMMANDS_TO_TRACK
Public Class Methods
new()
click to toggle source
# File lib/qualtrics/transaction.rb, line 37 def initialize @op_stack = {} end
Public Instance Methods
entity_id(response)
click to toggle source
# File lib/qualtrics/transaction.rb, line 50 def entity_id(response) response.result["#{operation.entity_name}ID"] end
push(operation, response)
click to toggle source
# File lib/qualtrics/transaction.rb, line 45 def push(operation, response) @op_stack[operation.entity_name] ||= [] @op_stack[operation.entity_name] << TransactionRecord.new(operation, response.result) end
received_response(operation, response)
click to toggle source
# File lib/qualtrics/transaction.rb, line 41 def received_response(operation, response) push(operation, response) if queue?(operation, response) end
rollback!()
click to toggle source
# File lib/qualtrics/transaction.rb, line 54 def rollback! @op_stack.each do |entity_type, transaction_records| while rec = transaction_records.shift do if rec.has_inverse? rec.issue_inverse_request end end end end
Protected Instance Methods
queue?(operation, response)
click to toggle source
# File lib/qualtrics/transaction.rb, line 66 def queue?(operation, response) response.success? && !response.result.nil? && COMMANDS_TO_TRACK.include?(operation.command) end