Sha256: 7de905af26d65cc6388f4e698f09af4fbad81f9c04d5c4672c9c2096c43c5062
Contents?: true
Size: 966 Bytes
Versions: 1
Compression:
Stored size: 966 Bytes
Contents
module MixedGauge # Mapping of slot -> connection_name. class ClusterConfig attr_reader :name # @param [Symbol] name def initialize(name) @name = name @connection_registry = {} end # @param [Range] slots Range consisted with Fixnum. def define_slots(slots) @slots = slots end # @param [Range] slots # @param [Symbol] connection connection name def register(slots, connection) @connection_registry[slots] = connection end def validate_config! # TODO # validate non Fixnum slots. end # @return [Integer] def slot_size @slots.size end # @param [Integer] slot # @return [Symbol] registered connection name def fetch(slot) @connection_registry.find {|slot_range, name| slot_range.cover?(slot) }[1] end # @return [Array<Symbol>] An array of connection name def connections @connection_registry.values end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mixed_gauge-0.2.1 | lib/mixed_gauge/cluster_config.rb |