Class: SimpleSqs::Queue

Inherits:
Object
  • Object
show all
Defined in:
lib/simple_sqs/queue.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(queue_url:) ⇒ Queue

Returns a new instance of Queue.



4
5
6
7
8
9
10
11
# 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

Instance Attribute Details

#clientObject (readonly)

Returns the value of attribute client.



2
3
4
# File 'lib/simple_sqs/queue.rb', line 2

def client
  @client
end

Instance Method Details

#approximate_number_of_messagesObject



27
28
29
# File 'lib/simple_sqs/queue.rb', line 27

def approximate_number_of_messages
  get_attribute('ApproximateNumberOfMessages')
end

#send_message(event_name:, arguments: []) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
# 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