Sha256: 6b39f8fc17e3857c5e1dfaecb3565eb289733fe9733fbdfcaaf9ab7f87f6fa05
Contents?: true
Size: 768 Bytes
Versions: 1
Compression:
Stored size: 768 Bytes
Contents
require 'dry-equalizer' module Messaging module Routing # Internal: Used by routing to match a pattern against a callable (handler) class Subscriber include Dry::Equalizer(:matcher, :handler) attr_reader :matcher attr_reader :handler def initialize(pattern, topic, handler) @matcher = MessageMatcher.new(pattern: pattern, topic: topic) @handler = handler verify_handler! end def call(message) return unless @matcher.matches?(message) @handler.call(message) end def topics matcher.topics end private def verify_handler! raise ArgumentError, 'Handler must be callable' unless handler.respond_to? :call end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
messaging-3.4.1 | lib/messaging/routing/subscriber.rb |