class SXS::Publisher
Public Class Methods
new(queue_url, provider:)
click to toggle source
# File lib/sxs/publisher.rb, line 5 def initialize(queue_url, provider:) @provider = provider @queue_url = queue_url end
Public Instance Methods
publish(body)
click to toggle source
# File lib/sxs/publisher.rb, line 10 def publish(body) publisher.publish(body) end
Private Instance Methods
environment()
click to toggle source
# File lib/sxs/publisher.rb, line 16 def environment ENV['RAILS_ENV'] end
memory()
click to toggle source
# File lib/sxs/publisher.rb, line 20 def memory SXS::Publishers::Memory end
provider()
click to toggle source
# File lib/sxs/publisher.rb, line 24 def provider return provider_select(ENV['SXS_PROVIDER']) unless ENV['SXS_PROVIDER'].nil? return provider_select(@provider) if environment == 'production' { 'development' => redis, 'test' => memory }[environment] end
provider_select(name)
click to toggle source
# File lib/sxs/publisher.rb, line 32 def provider_select(name) value = { memory: memory, redis: redis, sqs: sqs }[name&.to_sym] if value.nil? raise ArgumentError, 'Missing provider! Availables: :memory, :redis, :sns or :sqs' end value end
publisher()
click to toggle source
# File lib/sxs/publisher.rb, line 42 def publisher @publisher ||= provider.new(@queue_url) end
redis()
click to toggle source
# File lib/sxs/publisher.rb, line 46 def redis SXS::Publishers::Redis end
sqs()
click to toggle source
# File lib/sxs/publisher.rb, line 50 def sqs SXS::Publishers::SQS end