Class: Smash::CloudPowers::Synapse::Queue::Board

Inherits:
Struct
  • Object
show all
Includes:
Helper, Smash::CloudPowers::Synapse::Queue, Zenv
Defined in:
lib/cloud_powers/synapse/queue.rb

Overview

Board This groups common functionality for a queue

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Zenv

#env_vars, #file_tree_search, #i_vars, #project_root, #project_root=, #system_vars, #zfind

Methods included from Helper

#attr_map!, #called_from, #create_logger, #errors, #format_error_message, #log_file, #logger, #smart_retry, #task_path, #task_require_path, #to_camel, #to_i_var, #to_pascal, #to_ruby_file_name, #to_snake, #update_message_body, #valid_json?

Methods included from Auth

creds

Methods included from Smash::CloudPowers::Synapse::Queue

#board_name, #build_queue, #delete_queue_message, #get_queue_message_count, #pluck_queue_message, #poll, #poller, #queue_exists?, #queue_search, #send_queue_message

Methods included from AwsResources

#ec2, #image, #kinesis, #region, #s3

Instance Attribute Details

#set_addressObject

Returns the value of attribute set_address

Returns:

  • (Object)

    the current value of set_address



11
12
13
# File 'lib/cloud_powers/synapse/queue.rb', line 11

def set_address
  @set_address
end

#set_nameObject

Returns the value of attribute set_name

Returns:

  • (Object)

    the current value of set_name



11
12
13
# File 'lib/cloud_powers/synapse/queue.rb', line 11

def set_name
  @set_name
end

#sqsObject

Returns the value of attribute sqs

Returns:

  • (Object)

    the current value of sqs



11
12
13
# File 'lib/cloud_powers/synapse/queue.rb', line 11

def sqs
  @sqs
end

#workflowObject

Returns the value of attribute workflow

Returns:

  • (Object)

    the current value of workflow



11
12
13
# File 'lib/cloud_powers/synapse/queue.rb', line 11

def workflow
  @workflow
end

Instance Method Details

#addressObject



20
21
22
23
# File 'lib/cloud_powers/synapse/queue.rb', line 20

def address
  set_address || zfind(set_name) ||
     "https://sqs.us-west-2.amazonaws.com/#{zfind(:account_number)}/#{name}"
end

#create_queue!Object



25
26
27
28
# File 'lib/cloud_powers/synapse/queue.rb', line 25

def create_queue!
  sqs.create_queue(queue_name: to_camel(name))
  self
end

#destroy!Object



30
31
32
# File 'lib/cloud_powers/synapse/queue.rb', line 30

def destroy!
  sqs.delete_queue(queue_url: address)
end

#i_varObject



16
17
18
# File 'lib/cloud_powers/synapse/queue.rb', line 16

def i_var
  "@#{name}"
end

#message_countObject



34
35
36
# File 'lib/cloud_powers/synapse/queue.rb', line 34

def message_count
  get_queue_message_count(address)
end

#nameObject



38
39
40
# File 'lib/cloud_powers/synapse/queue.rb', line 38

def name
  set_name || address.split('/').last
end

#next_boardObject



42
43
44
# File 'lib/cloud_powers/synapse/queue.rb', line 42

def next_board
  workflow.next
end

#pluck_message(board_name = name) ⇒ Object



46
47
48
# File 'lib/cloud_powers/synapse/queue.rb', line 46

def pluck_message(board_name = name)
  pluck_queue_message(board_name)
end

#real?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/cloud_powers/synapse/queue.rb', line 50

def real?
  queue_exists?(name)
end

#send_message(message) ⇒ Object



54
55
56
57
58
# File 'lib/cloud_powers/synapse/queue.rb', line 54

def send_message(message)
  send_queue_message(
    address, (valid_json?(message) ? message : message.to_json)
  )
end