module JsonapiPublisher
Constants
- VERSION
Attributes
channel[RW]
configuration[W]
connection[RW]
Public Class Methods
configuration()
click to toggle source
# File lib/jsonapi_publisher.rb, line 17 def self.configuration @configuration ||= Configuration.new end
configure() { |configuration| ... }
click to toggle source
# File lib/jsonapi_publisher.rb, line 21 def self.configure yield(configuration) end
publish(routing_key, message = {}, event = '')
click to toggle source
# File lib/jsonapi_publisher.rb, line 25 def self.publish(routing_key, message = {}, event = '') if message.is_a?(ActiveRecord::Base) message = ActiveModelSerializers::SerializableResource.new(message).as_json end message = { event: event }.merge(message) if event.present? if configuration.qservice == 'rmq' x = channel.topic(ENV['EVENT_TOPIC'] || 'events') x.publish(message.to_json, routing_key: routing_key) elsif configuration.qservice == 'sqs' message_attributes = { routing_key: { string_value: routing_key, data_type: 'String' } } if configuration.avoid_send p; p "Requesting with queue_url: #{ENV['QUEUE_URL'] || channel.queue_url}, message_body: #{message.to_json}, message_attributes: #{message_attributes}" else connection.send_message(queue_url: ENV['QUEUE_URL'] || channel.queue_url, message_body: message.to_json, message_attributes: message_attributes) end end end
reset_connection()
click to toggle source
# File lib/jsonapi_publisher.rb, line 65 def self.reset_connection self.connection = nil self.channel = nil configuration.qservice = nil end