class Basquiat::Adapters::Test
An adapter to be used in testing
Attributes
options[R]
Public Class Methods
clean()
click to toggle source
# File lib/basquiat/adapters/test_adapter.rb, line 12 def clean @events&.clear end
events()
click to toggle source
# File lib/basquiat/adapters/test_adapter.rb, line 8 def events @events ||= Hash.new { |hash, key| hash[key] = [] } end
Public Instance Methods
base_options()
click to toggle source
# File lib/basquiat/adapters/test_adapter.rb, line 19 def base_options @event_names = [] { host: '127.0.0.1', port: 123_456, durable: true } end
connected?()
click to toggle source
# File lib/basquiat/adapters/test_adapter.rb, line 43 def connected? true end
events(key)
click to toggle source
# File lib/basquiat/adapters/test_adapter.rb, line 28 def events(key) self.class.events[key] end
listen(*)
click to toggle source
# File lib/basquiat/adapters/test_adapter.rb, line 37 def listen(*) event = subscribed_event msg = self.class.events[event].shift msg ? procs[event].call(BaseMessage.new(msg)) : nil end
publish(event, message, _single_message = true)
click to toggle source
# File lib/basquiat/adapters/test_adapter.rb, line 24 def publish(event, message, _single_message = true) self.class.events[event] << Basquiat::Json.encode(message) end
subscribe_to(event_name, proc)
click to toggle source
# File lib/basquiat/adapters/test_adapter.rb, line 32 def subscribe_to(event_name, proc) @event_names << event_name procs[event_name] = proc end
Private Instance Methods
subscribed_event()
click to toggle source
# File lib/basquiat/adapters/test_adapter.rb, line 49 def subscribed_event event = @event_names.first @event_names.rotate! event end