class MessageDriver::Adapters::StompAdapter
Attributes
config[R]
poll_timeout[R]
Public Class Methods
new(broker, config)
click to toggle source
# File lib/message_driver/adapters/stomp_adapter.rb, line 31 def initialize(broker, config) validate_stomp_version @broker = broker @config = config.symbolize_keys connect_headers = @config[:connect_headers] ||= {} connect_headers.symbolize_keys connect_headers[:"accept-version"] = '1.1,1.2' vhost = @config.delete(:vhost) connect_headers[:host] = vhost if vhost @poll_timeout = 1 end
Public Instance Methods
build_context()
click to toggle source
# File lib/message_driver/adapters/stomp_adapter.rb, line 90 def build_context StompContext.new(self) end
stop()
click to toggle source
Calls superclass method
MessageDriver::Adapters::Base#stop
# File lib/message_driver/adapters/stomp_adapter.rb, line 101 def stop super @connection.disconnect if @connection end
with_connection() { |connection| ... }
click to toggle source
# File lib/message_driver/adapters/stomp_adapter.rb, line 94 def with_connection @connection ||= open_connection yield @connection rescue SystemCallError, IOError => e raise MessageDriver::ConnectionError.new(e) end
Private Instance Methods
open_connection()
click to toggle source
# File lib/message_driver/adapters/stomp_adapter.rb, line 108 def open_connection conn = Stomp::Connection.new(@config) raise MessageDriver::ConnectionError, conn.connection_frame.to_s unless conn.open? conn end
validate_stomp_version()
click to toggle source
# File lib/message_driver/adapters/stomp_adapter.rb, line 114 def validate_stomp_version required = Gem::Requirement.create('~> 1.3.1') current = Gem::Version.create(Stomp::Version::STRING) unless required.satisfied_by? current raise MessageDriver::Error, 'stomp 1.3.1 or a later version of the 1.3.x series is required for the stomp adapter' end end