mirror of
https://github.com/jimeh/amqp-failover.git
synced 2026-02-19 10:56:44 +00:00
renamed Failover::Configs to
Failover::Configurations
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
Reference in New Issue
Block a user