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