class SimpleSqs::Queue

Attributes

client[R]

Public Class Methods

new(queue_url: @queue_url = queue_url) click to toggle source
# File lib/simple_sqs/queue.rb, line 4
def initialize queue_url:
  @queue_url = queue_url
  @client = Aws::SQS::Client.new(
    access_key_id: ENV.fetch('SIMPLE_SQS_PUBLIC_KEY'),
    secret_access_key: ENV.fetch('SIMPLE_SQS_SECRET_KEY'),
    region: ENV.fetch('SIMPLE_SQS_REGION')
  )
end

Public Instance Methods

approximate_number_of_messages() click to toggle source
# File lib/simple_sqs/queue.rb, line 27
def approximate_number_of_messages
  get_attribute('ApproximateNumberOfMessages')
end
send_message(event_name:, arguments: []) click to toggle source
# File lib/simple_sqs/queue.rb, line 13
def send_message event_name:, arguments: []
  body = {'Events' => [
    {'EventType' => event_name,
     'EventTimestamp' => Time.now.to_s,
     'Arguments' => arguments
    }
  ]}

  resp = client.send_message(
    queue_url: @queue_url,
    message_body: body.to_json,
  )
end

Private Instance Methods

get_attribute(attribute) click to toggle source
# File lib/simple_sqs/queue.rb, line 32
def get_attribute attribute
  resp = client.get_queue_attributes(
    attribute_names: [attribute],
    queue_url: @queue_url
  )
  resp.attributes[attribute]
end