Sha256: a6ac4b037ccec9f943fb1e072280f31138331f8fab2ba4f196bb111ef8a62e86

Contents?: true

Size: 671 Bytes

Versions: 1

Compression:

Stored size: 671 Bytes

Contents

module RooOnRails
  module Routemaster
    module Publishers
      @default_publishers = []
      @publishers = {}

      def self.register_default(publisher_class)
        @default_publishers << publisher_class
      end

      def self.register(publisher_class, model_class:)
        @publishers[model_class] ||= Set.new
        @publishers[model_class] << publisher_class
      end

      def self.for(model, event)
        publisher_classes = @publishers[model.class] || @default_publishers
        publisher_classes.map { |c| c.new(model, event) }
      end

      def self.clear
        @default_publishers = []
        @publishers = {}
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
roo_on_rails-1.10.0 lib/roo_on_rails/routemaster/publishers.rb