class MessengerPigeon::Flock
A flock of Pigeons Manage configuration and dispatch
Public Class Methods
new(opts, args)
click to toggle source
# File lib/messenger_pigeon.rb, line 19 def initialize(opts, args) @c = Config.new(opts[:config], args) @endpoints = { source: EndpointManager.new(:source), target: EndpointManager.new(:target) } end
Public Instance Methods
release()
click to toggle source
# File lib/messenger_pigeon.rb, line 27 def release @c.conf[:pigeon].each do |name, instructions| next unless @c.release_pigeon? name release_pigeon prepare_endpoints(instructions), instructions end @endpoints.values.each(&:finalise) end
Private Instance Methods
prepare_endpoints(instructions)
click to toggle source
# File lib/messenger_pigeon.rb, line 37 def prepare_endpoints(instructions) @endpoints.collect do |k, v| v.prepare instructions[k], @c.conf[k][instructions[k]] end end
release_pigeon(eps, instructions)
click to toggle source
# File lib/messenger_pigeon.rb, line 43 def release_pigeon(eps, instructions) pigeon = Pigeon.new(*eps, instructions) pigeon.fly end