Sha256: eccc9a39e2c266a1485f6c4917c1ad9cb8ea1cfb089ca0a8982f9e4df102a1f9
Contents?: true
Size: 1.68 KB
Versions: 1
Compression:
Stored size: 1.68 KB
Contents
module MessageDriver module Adapters class Base include Logging attr_reader :broker def contexts @contexts ||= [] end def initialize(_broker, _configuration) raise 'Must be implemented in subclass' end def new_context ctx = build_context contexts << ctx ctx end def build_context raise 'Must be implemented in subclass' end def reset_after_tests #does nothing, can be overridden by adapters that want to support testing scenarios end def stop if @contexts ctxs = @contexts @contexts = [] ctxs.each { |ctx| ctx.invalidate } end end end class ContextBase include Logging attr_reader :adapter attr_accessor :valid def initialize(adapter) @adapter = adapter @valid = true end def publish(_destination, _body, _headers={}, _properties={}) raise 'Must be implemented in subclass' end def pop_message(_destination, _options={}) raise 'Must be implemented in subclass' end def subscribe(_destination, _options={}, &_consumer) raise "#subscribe is not supported by #{adapter.class}" end def create_destination(_name, _dest_options={}, _message_props={}) raise 'Must be implemented in subclass' end def valid? @valid end def invalidate @valid = false end def supports_transactions? false end def supports_client_acks? false end def supports_subscriptions? false end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
message-driver-0.4.0 | lib/message_driver/adapters/base.rb |