Sha256: 5778148d7f21a1aa0ec02baa3d05affa1c2322046b897379f73e02c149d2b998

Contents?: true

Size: 928 Bytes

Versions: 14

Compression:

Stored size: 928 Bytes

Contents

require 'forwardable'

module Wisper
  class Configuration
    attr_reader :broadcasters

    def initialize
      @broadcasters = Broadcasters.new
    end

    # registers a broadcaster, referenced by key
    #
    # @param key [String, #to_s] an arbitrary key
    # @param broadcaster [#broadcast] a broadcaster
    def broadcaster(key, broadcaster)
      @broadcasters[key] = broadcaster
      self
    end

    # sets the default value for prefixes
    #
    # @param [#to_s] value
    #
    # @return [String]
    def default_prefix=(value)
      ValueObjects::Prefix.default = value
    end

    class Broadcasters
      extend Forwardable

      def_delegators :@data, :[], :[]=, :empty?, :include?, :clear, :keys, :to_h

      def initialize
        @data = {}
      end

      def fetch(key)
        raise KeyError, "broadcaster not found for #{key}" unless include?(key)
        @data[key]
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 5 rubygems

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