Sha256: f53c7ff31c683fe4676529b05f21ad640ac9e83632b3d6e4b9fce21a8e51ba0b

Contents?: true

Size: 1.41 KB

Versions: 12

Compression:

Stored size: 1.41 KB

Contents

require 'set'
require 'wisper/version'
require 'wisper/configuration'
require 'wisper/publisher'
require 'wisper/value_objects/prefix'
require 'wisper/value_objects/events'
require 'wisper/registration/registration'
require 'wisper/registration/object'
require 'wisper/registration/block'
require 'wisper/global_listeners'
require 'wisper/temporary_listeners'
require 'wisper/broadcasters/send_broadcaster'
require 'wisper/broadcasters/logger_broadcaster'

module Wisper
  # Examples:
  #
  #   Wisper.subscribe(AuditRecorder.new)
  #
  #   Wisper.subscribe(AuditRecorder.new, StatsRecorder.new)
  #
  #   Wisper.subscribe(AuditRecorder.new, on: 'order_created')
  #
  #   Wisper.subscribe(AuditRecorder.new, scope: 'MyPublisher')
  #
  #   Wisper.subscribe(AuditRecorder.new, StatsRecorder.new) do
  #     # ..
  #   end
  #
  def self.subscribe(*args, &block)
    if block_given?
      TemporaryListeners.subscribe(*args, &block)
    else
      GlobalListeners.subscribe(*args)
    end
  end

  def self.unsubscribe(*listeners)
    GlobalListeners.unsubscribe(*listeners)
  end

  def self.publisher
    Publisher
  end

  def self.clear
    GlobalListeners.clear
  end

  def self.configure
    yield(configuration)
  end

  def self.configuration
    @configuration ||= Configuration.new
  end

  def self.setup
    configure do |config|
      config.broadcaster(:default, Broadcasters::SendBroadcaster.new)
    end
  end
end

Wisper.setup

Version data entries

12 entries across 12 versions & 4 rubygems

Version Path
lotrd-0.1.9 vendor/cache/ruby/2.6.0/gems/wisper-2.0.1/lib/wisper.rb
lotrd-0.1.8 vendor/cache/ruby/2.6.0/gems/wisper-2.0.1/lib/wisper.rb
lotrd-0.1.6 vendor/cache/ruby/2.6.0/gems/wisper-2.0.1/lib/wisper.rb
lotrd-0.1.5 vendor/cache/ruby/2.6.0/gems/wisper-2.0.1/lib/wisper.rb
pokedex-terminal-0.2.8 vendor/bundle/ruby/2.7.0/gems/wisper-2.0.1/lib/wisper.rb
pokedex-terminal-0.2.7 vendor/bundle/ruby/2.7.0/gems/wisper-2.0.1/lib/wisper.rb
pokedex-terminal-0.2.6 vendor/bundle/ruby/2.7.0/gems/wisper-2.0.1/lib/wisper.rb
pokedex-terminal-0.2.5 vendor/bundle/ruby/2.7.0/gems/wisper-2.0.1/lib/wisper.rb
pokedex-terminal-0.2.4 vendor/bundle/ruby/2.7.0/gems/wisper-2.0.1/lib/wisper.rb
wisper-2.0.1 lib/wisper.rb
siftery-wisper-2.0.1 lib/wisper.rb
wisper-2.0.0 lib/wisper.rb