renamed Failover::Configs to

Failover::Configurations
This commit is contained in:
2011-01-31 18:34:23 +00:00
parent 3918b5bba6
commit c6100fee33
2 changed files with 36 additions and 27 deletions

View File

@@ -4,7 +4,7 @@ require 'yaml'
require 'amqp/failover_client' require 'amqp/failover_client'
require 'amqp/failover/config' require 'amqp/failover/config'
require 'amqp/failover/configs' require 'amqp/failover/configurations'
require 'amqp/failover/logger' require 'amqp/failover/logger'
require 'amqp/failover/server_discovery' require 'amqp/failover/server_discovery'
require 'amqp/failover/version' require 'amqp/failover/version'
@@ -20,7 +20,7 @@ module AMQP
attr_accessor :fallback attr_accessor :fallback
def initialize(confs = nil, opts = {}) def initialize(confs = nil, opts = {})
@configs = Failover::Configs.new(confs) @configs = Failover::Configurations.new(confs)
@options = default_options.merge(opts) @options = default_options.merge(opts)
end end
@@ -53,7 +53,7 @@ module AMQP
end end
def configs def configs
@configs ||= Config.new @configs ||= Configurations.new
end end
def add_config(conf = {}, ref = nil) def add_config(conf = {}, ref = nil)

View File

@@ -2,42 +2,47 @@
module AMQP module AMQP
class Failover class Failover
class Configs < Array class Configurations < Array
def initialize(confs = nil) def initialize(confs = nil)
load(confs) load(confs)
end end
def [](*args) def [](*args)
return super(*args) if args[0].is_a?(Fixnum) if args[0].is_a?(Symbol)
return get_primary if args[0] == :primary return primary if args[0] == :primary
get(args[0]) get(args[0])
else
super(*args)
end
end end
def []=(*args) def []=(*args)
return super(*args) if args[0].is_a?(Fixnum) if args[0].is_a?(Symbol)
return set_primary(args.last, args[0]) if args[0] == :primary return primary = args.last if args[0] == :primary
set(args.last, args[0]) set(args.last, args[0])
end
super(*args)
end end
def refs def refs
@refs ||= {} @refs ||= {}
end end
def primary_ref
@primary_ref ||= 0
end
def primary_ref=(ref)
@primary_ref = ref
end
def primary def primary
@primary ||= 0 get(primary_ref) || AMQP.settings
end end
def primary=(ref) def primary=(conf = {})
@primary = ref set(conf, primary_ref)
end
def get_primary
get(primary) || default_config
end
def set_primary(conf = {})
set(conf, primary)
end end
def get(ref = nil) def get(ref = nil)
@@ -47,10 +52,13 @@ module AMQP
def set(conf = {}, ref = nil) def set(conf = {}, ref = nil)
conf = Failover::Config.new(conf) if !conf.is_a?(Failover::Config) conf = Failover::Config.new(conf) if !conf.is_a?(Failover::Config)
self << conf if (index = self.index(conf)).nil? if (index = self.index(conf)).nil?
if ref self << conf
refs[ref] = (index || self.index(conf)) else
conf = self[index]
end end
refs[ref] = (index || self.index(conf)) if ref
conf
end end
def find_next(conf = {}) def find_next(conf = {})
@@ -68,17 +76,18 @@ module AMQP
end end
def load(conf) def load(conf)
if conf.is_a?(::Array) if conf.is_a?(Array)
load_array(conf) load_array(conf)
elsif conf.is_a?(::Hash) elsif conf.is_a?(Hash)
load_hash(conf) load_hash(conf)
end end
end end
def load_array(confs = []) def load_array(confs = [])
self.clear self.clear
refs = {}
confs.each do |conf| confs.each do |conf|
conf = AMQP::Client.parse_amqp_url(conf) if conf.is_a?(::String) conf = AMQP::Client.parse_amqp_url(conf) if conf.is_a?(String)
load_hash(conf) load_hash(conf)
end end
end end