def batch_send *messages
entries = messages.flatten
unless entries.first.is_a?(Hash)
options = entries.last.is_a?(Hash) ? entries.pop : {}
entries = entries.collect{|msg| { :message_body => msg } }
if delay = options[:delay_seconds]
entries.each {|entry| entry[:delay_seconds] = delay }
end
end
entries.each_with_index {|entry,n| entry[:id] = n.to_s }
client_opts = {}
client_opts[:queue_url] = url
client_opts[:entries] = entries
response = client.send_message_batch(client_opts)
failed = batch_failures(entries, response)
sent = response[:successful].collect do |sent|
msg = SentMessage.new
msg.message_id = sent[:message_id]
msg.md5 = sent[:md5_of_message_body]
msg
end
raise Errors::BatchSendError.new(sent, failed) unless failed.empty?
sent
end