Sha256: 0010efa511ea6911ac791bbb0e2de5f299b9c996950e5cb32c462cdf29470d49
Contents?: true
Size: 1.94 KB
Versions: 3
Compression:
Stored size: 1.94 KB
Contents
# encoding: utf-8 module AMQP class Failover class Configurations < Array def initialize(confs = nil) load(confs) end def [](*args) if args[0].is_a?(Symbol) return primary if args[0] == :primary get(args[0]) else super(*args) end end def []=(*args) if args[0].is_a?(Symbol) return primary = args.last if args[0] == :primary set(args.last, args[0]) end super(*args) end def refs @refs ||= {} end def primary_ref @primary_ref ||= 0 end def primary_ref=(ref) @primary_ref = ref end def primary get(primary_ref) || AMQP.settings end def primary=(conf = {}) set(conf, primary_ref) end def get(ref = nil) return self[ref] if ref.is_a?(Fixnum) self[refs[ref]] if refs[ref] end def set(conf = {}, ref = nil) conf = Failover::Config.new(conf) if !conf.is_a?(Failover::Config) if (index = self.index(conf)).nil? self << conf else conf = self[index] end refs[ref] = (index || self.index(conf)) if ref conf end def find_next(conf = {}) current = self.index(conf) self[(current+1 == self.size) ? 0 : current+1] if current end def load(conf) if conf.is_a?(Array) load_array(conf) elsif conf.is_a?(Hash) load_hash(conf) end end def load_array(confs = []) self.clear refs = {} confs.each do |conf| conf = AMQP::Client.parse_amqp_url(conf) if conf.is_a?(String) load_hash(conf) end end def load_hash(conf = {}) set(conf) end end # Config end # Failover end # AMQP
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
amqp-failover-0.0.3 | lib/amqp/failover/configurations.rb |
amqp-failover-0.0.2 | lib/amqp/failover/configurations.rb |
amqp-failover-0.0.1 | lib/amqp/failover/configurations.rb |